fastjson2 icon indicating copy to clipboard operation
fastjson2 copied to clipboard

[BUG]json字符串中,数组元素后面带有注释时反序列化失败

Open Silverthorn001 opened this issue 7 months ago • 4 comments

问题描述

简要描述您碰到的问题。

环境信息

请填写以下信息:

  • OS信息: Windows10 22H2
  • JDK信息: Openjdk 22
  • 版本信息:Fastjson2 2.0.57

重现步骤

字符串中数组元素有注释时反序列化失败 { "a": [ "bbb", "ccc", // 这里有注释 "ddd" ] }

//可在此输入示例代码
    public static void main(String[] args) {
        String str =  "{\n" +
                "\t\"a\": [\n" +
                "\t\t\"bbb\",\n" +
                "\t\t\"ccc\", // 这里有注释\n" +
                "\t\t\"ddd\"\n" +
                "\t]\n" +
                "}";

        JSONObject jsonObject = JSON.parseObject(str);
        System.out.println(jsonObject.toString());
    }

### 期待的正确结果
可以正常反序列化


### 相关日志输出
"C:\Program Files\java\openjdk-22.0.1\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2025.1.1.1\lib\idea_rt.jar=49718" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath G:\develop\ideaWorkspace\MavenProject\ProjectOne\target\classes;C:\Users\Administrator\.m2\repository\com\alibaba\fastjson2\fastjson2\2.0.57\fastjson2-2.0.57.jar org.example.TestJson2
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "list" is null
	at com.alibaba.fastjson2.JSONReader.add(JSONReader.java:2795)
	at com.alibaba.fastjson2.JSONReader.readArray(JSONReader.java:2758)
	at com.alibaba.fastjson2.JSONReader.read(JSONReader.java:2218)
	at com.alibaba.fastjson2.JSON.parseObject(JSON.java:348)
	at org.example.TestJson2.main(TestJson2.java:16)

Process finished with exit code 1


#### 附加信息
fastjson2 2.0.52/2.0.54版本均有这个错误

Silverthorn001 avatar May 11 '25 15:05 Silverthorn001

你好,JSON格式数据应该不支持注释的,可以用一些伪注释

jujn avatar May 12 '25 05:05 jujn

但是fastsjon 1.2.83是支持的,fastjson2这个特性反而退化了么; 主要是处理JSON5文件,里面会有一些注释

Silverthorn001 avatar May 12 '25 16:05 Silverthorn001

但是fastsjon 1.2.83是支持的,fastjson2这个特性反而退化了么; 主要是处理JSON5文件,里面会有一些注释

之前看项目的作者温老师说,fastjson2会去掉一些少有人使用的特性,不知道是不是因为这个

jujn avatar May 13 '25 03:05 jujn

抱歉哈,突然发现这个bug,好像已经被解决了(https://github.com/alibaba/fastjson2/issues/3485),但是要等到2.0.58版本发布了

jujn avatar May 28 '25 04:05 jujn

https://github.com/alibaba/fastjson2/releases/tag/2.0.58 问题已修复,请用新版本

wenshao avatar Jul 30 '25 05:07 wenshao