前言
我们经常使用 fastjson 将字符串转为实体类列表,最近在处理时报了错。
提示:以下是本篇文章正文内容,下面案例可供参考
一、错误解决
1.错误详情
Exception in thread "main" com.alibaba.fastjson.JSONException: TODO
at com.alibaba.fastjson.JSON.parseArray(JSON.java:431)
at com.alpari.web.controller.Test002.main(Test002.java:37)
2.解决方案
使用:JSON.parseArray(“字符串”).toJavaList(Class<?> clazz);
二、错误回顾
1.版本,使用2.0.0以上
<fastjson.version>2.0.0</fastjson.version>
2.错误重现
使用的是:JSON.parseArray(String text, Class clazz) 这个方法
List<MachineRoom> machineRooms = JSON.parseArray("字符串", MachineRoom.class);
我们会看到她的实现就是抛异常
public static <T> List<T> parseArray(String text, Class<T> clazz) {
throw new com.alibaba.fastjson.JSONException("TODO");
}
3.解决方案
使用的是:JSON.parseArray(“字符串”).toJavaList(Class<?> clazz);
List<MachineRoom> machineRooms = JSON.parseArray("字符串").toJavaList(MachineRoom.class);
先将字符串转化为 jsonArray,再用 jsonArray 转化成实体列表,更多转化及取值见下 ↓:
Java 解析多层嵌套json数据及json字符串与对象的相互转换
总结
时间并不可真的帮我们去解决哪些问题,它只不过是会把原来怎么也想不通的问题,变得不再重要了。