fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG] JSON.parseObject throws TODO exception

Open Cooper-Zhong opened this issue 3 months ago • 2 comments

问题描述

JSON.parseObject解析以下代码时,fastjson 1.2.83抛出对应的错误信息,而fastjson2 抛出JSONException: TODO。其中{"demo": 1}为illegal 字段,正确格式如:{"demo": [1]},可以完善一下exception信息。

环境信息

  • OS信息: [MacOS 12.7.4 M1 Pro 16 GB]
  • JDK信息: [Openjdk 17.0.6]
  • 版本信息:[Fastjson2 2.0.50]

重现步骤

import com.alibaba.fastjson2.JSON;
import lombok.Data;
import org.junit.jupiter.api.Test;

import java.util.List;

public class MutatedIssue464_432 {
    @Test
    public void test0() {
        String str = "{\"test\":[{\"demo\": 1}]}";
        TestParam param = JSON.parseObject(str, TestParam.class);
        List<Demo> testList = param.getTest();
    }

    @Data
    static class TestParam {
        List<Demo> test;
    }

    @Data
    static class Demo {
        private Integer[] demo;
    }
}

相关日志输出

// fastjson 1.2.83 com.alibaba.fastjson.JSONException: field demo expect '[', but int, pos 19, line 1, column 20{"test":[{"demo": 1}]}

// fastjson 2.0.50 com.alibaba.fastjson2.JSONException: TODO, offset 19, character 1, line 1, column 19, fastjson-version 2.0.51 {"test":[{"demo": 1}]} at com.alibaba.fastjson2.reader.ObjectReaderImplInt32Array.readObject(ObjectReaderImplInt32Array.java:87) at com.alibaba.fastjson2.reader.ORG_2_1_Demo.readObject(Unknown Source) at com.alibaba.fastjson2.reader.ORG_1_1_TestParam.readObject(Unknown Source) at com.alibaba.fastjson2.JSON.parseObject(JSON.java:786) at MutatedIssue464_432.test0(MutatedIssue464_432.java:14)

Cooper-Zhong avatar May 17 '24 13:05 Cooper-Zhong

https://oss.sonatype.org/content/repositories/snapshots/com/alibaba/fastjson2/fastjson2/2.0.51-SNAPSHOT/ 问题已修复,请帮忙用2.0.51-SNAPSHOT版本验证

wenshao avatar May 17 '24 15:05 wenshao

验证已修复,辛苦温少

Cooper-Zhong avatar May 18 '24 05:05 Cooper-Zhong