① 处多了右花括号 ② 通过解析为对象集合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
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版本。
其他问题:如果以上方法都无法解决问题,可以查看错误日志或调试信息,确定具体的解析问题所在,进一步排查问题。
是你的json不符合格式,多了一个 '}'
问题已修复,请用新版本 https://github.com/alibaba/fastjson2/releases/tag/2.0.5
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。