转换JSON字符串成Java对象是Java程序中经常需要做的一个任务。有很多开源库能够帮助我们完成这一任务,如Jackson。Jackson 是一个高效的 JSON 处理器,能够将 JSON 字符串解析成 Java 对象。
Jackson 支持将 JSON 转换成 Java 对象,也支持将 JSON 转换成泛型 List,本篇攻略将介绍 Jackson 将 JSON 字符串转换成泛型 List 的完整过程。
准备工作
使用 Jackson 将 JSON 字符串转换成泛型 List,需要在项目中添加 Jackson 的依赖包,Maven 的依赖配置如下:
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
转换 JSON 字符串为泛型 List
下面是使用 Jackson 将 JSON 字符串转换为泛型 List 的代码示例。
首先,定义一个类 User:
public class User {
private String name;
private int age;
// getters and setters
}
接着,假设我们有一个 JSON 字符串,格式如下:
[
{
"name": "Tom",
"age": 24
},
{
"name": "Jerry",
"age": 25
}
]
要将这个 JSON 字符串转化为一个 List\
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class JsonToObject {
public static void main(String[] args) {
String jsonStr = "[{\"name\":\"Tom\",\"age\":24},{\"name\":\"Jerry\",\"age\":25}]";
ObjectMapper objectMapper = new ObjectMapper();
List<User> userList = null;
try {
userList = objectMapper.readValue(jsonStr, new TypeReference<List<User>>(){});
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(userList);
}
}
代码实现了以下步骤:
- 将 JSON 字符串作为参数传递给 readValue 方法。
- 指定读取对象类型,这里是声明了一个 TypeReference 对象,对参数进行了泛型化。
- 将得到的 Java 对象强制类型转换成 List\
对象。
经过这几步操作,我们就成功地将“[ {\"name\":\"Tom\",\"age\":24}, {\"name\":\"Jerry\",\"age\":25} ]”转换为了两个 User 对象的 List。
添加了依赖包,复制上述代码,便可轻松地实现 json 字符串批量转为 java 对象的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java的Jackson将json字符串转换成泛型List - Python技术站