前言

我们经常使用 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字符串与对象的相互转换


总结

时间并不可真的帮我们去解决哪些问题,它只不过是会把原来怎么也想不通的问题,变得不再重要了。

在这里插入图片描述

Logo

一站式 AI 云服务平台

更多推荐