在Java中,使用JSONUtil(通常指的是com.alibaba.fastjson.JSON类的一部分,但不是标准库的一部分,而是在阿里巴巴的fastjson库中)来将JSON字符串转换为对象列表是一个常见的需求。下面是如何做到这一点的步骤:
1. 添加fastjson依赖
首先,确保你的项目中已经添加了fastjson的依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖:
xmlCopy Code
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version> <!-- 请检查最新版本 -->
</dependency>
2. 定义Java对象
定义一个Java类来表示你的JSON对象结构。例如,如果你有一个表示用户的JSON,可以这样定义:
public class User {
private String name;
private int age;
// 构造方法、getter和setter省略
}
3. 使用JSONUtil转换JSON字符串到对象列表
使用JSON.parseArray()方法将JSON字符串转换为对象列表。你需要提供两个参数:第一个是JSON字符串,第二个是目标对象的Class类型。例如:
import com.alibaba.fastjson.JSON;
import java.util.List;
public class Main {
public static void main(String[] args) {
String json = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}]";
List<User> userList = JSON.parseArray(json, User.class);
for (User user : userList) {
System.out.println(user.getName() + " - " + user.getAge());
}
}
}
注意事项:
确保JSON字符串格式正确,并且与目标Java类的字段匹配。
如果JSON结构比较复杂(例如,包含嵌套对象或数组),确保你的Java类结构与之相匹配。
使用最新的fastjson版本以获得最佳性能和安全性。可以通过查看fastjson的GitHub页面来获取最新版本信息。
从fastjson 1.2.68版本开始,阿里巴巴推荐使用com.alibaba.fastjson2包中的类(例如JSON.parseObject()等),因为fastjson1在一些新版本中存在安全漏洞。如果你使用的是新版本,请参考fastjson2的文档进行操作。例如:
import com.alibaba.fastjson2.JSON;
import java.util.List;
public class Main {
public static void main(String[] args) {
String json = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Jane\", \"age\":25}]";
List<User> userList = JSON.parseObject(json, new TypeReference<List<User>>() {});
for (User user : userList) {
System.out.println(user.getName() + " - " + user.getAge());
}
}
}
在这个例子中,我们使用了TypeReference来指定泛型类型。这是fastjson2中处理泛型集合的推荐方式。确保项目已经迁移到使用fastjson2。如果仍然在使用fastjson1,请考虑升级或寻找替代方案(如Jackson或Gson)。

被折叠的 条评论
为什么被折叠?



