开发者社区> 问答> 正文

JSON.parseArray解析有问题?

提问45.png

① 处多了右花括号 ② 通过解析为对象集合List ③ 通过解析为对象集合过程正确,但解析结果为2个 ④ 通过解析为json对象数组JSONArray ⑤ 通过解析为json对象数组过程异常

环境信息

OS信息: [e.g.:Windows 10] JDK信息: [e.g.:Openjdk 1.8.0_312] 版本信息:[e.g.:Fastjson2 2.0.2]

重现步骤

import java.util.List;

import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray;

import lombok.Data;

public class JSONTest { @Data public static class TModal{ private String namespace; private List items; } public static void main(String[] args) { String json = "[{\r\n" + " "namespace":"unit07", \r\n" + " "items":["COUNTER13_14.AV",\r\n" + " "COUNTER13_15.AV"]\r\n" + "}\r\n" + "}]"; JSONArray arrays = JSON.parseArray(json); System.out.println(arrays.size()); List list = JSON.parseArray(json, TModal.class); System.out.println(list.size()); }

}

期待的正确结果

两种方式结果能够一致

要么都解析失败,要么解析成功并且个数是1个

原提问者GitHub用户kervin521

展开
收起
大圣东游 2023-04-21 12:07:45 699 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    JSON.parseArray是FastJSON库中的方法,用于将JSON格式的字符串转换为Java对象的List集合。如果出现解析问题,可能是以下原因之一:

    JSON格式错误:JSON.parseArray方法要求传入的参数是符合JSON格式的字符串,如果JSON格式不正确,解析就会失败。可以使用在线JSON格式化工具检查JSON格式是否正确。

    Java对象类型错误:JSON.parseArray方法会尝试将JSON字符串转换为Java对象,如果Java对象类型与JSON格式不匹配,解析也会失败。可以检查Java对象的类型是否正确。

    FastJSON版本问题:如果使用的FastJSON版本过旧或过新,可能会导致JSON.parseArray方法解析失败。可以尝试升级或降级FastJSON版本。

    其他问题:如果以上方法都无法解决问题,可以查看错误日志或调试信息,确定具体的解析问题所在,进一步排查问题。

    2023-04-21 21:10:25
    赞同 展开评论 打赏
  • 是你的json不符合格式,多了一个 '}'

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

    原回答者GitHub用户wenshao

    2023-04-21 15:01:06
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像