📜  java jackson cast to list - Java (1)

📅  最后修改于: 2023-12-03 15:15:56.376000             🧑  作者: Mango

Java Jackson Cast to List

在Java中,Jackson是一个广泛使用的JSON库,但有时从JSON对象转换为Java List对象可能会出错。本文将介绍如何使用Jackson library将JSON对象转换为Java List对象,避免程序员在编码过程中遇到错误。

1. Jackson ObjectMapper

在Jackson library中,ObjectMapper是Jackson的核心类,用于序列化和反序列化Java对象和JSON对象。我们可以使用ObjectMapper读取JSON数据并将其转换为Java对象。

首先,我们需要在Maven项目中引入Jackson依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>

其中${jackson.version}是指Jackson的版本号。

接下来,我们创建一个简单的Java class,例如:

public class Person {
    private String name;
    private int age;
    // getters and setters
}

然后,我们可以使用ObjectMapper将JSON对象转换为Java List对象。

2. 使用Jackson ObjectMapper转换为Java List对象

假设我们有下面这个简单的JSON字符串:

[
  {"name": "John", "age": 30},
  {"name": "David", "age": 25},
  {"name": "Mary", "age": 35}
]

我们可以使用ObjectMapper的readValue()方法将其转换为Java List对象:

String json = "[{\"name\": \"John\", \"age\": 30}, {\"name\": \"David\", \"age\": 25}, {\"name\": \"Mary\", \"age\": 35}]";
List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>(){});

其中,TypeReference用于指定需要转换的Java对象类型,也可以使用Java反射机制:

List<Person> personList = objectMapper.readValue(json, new TypeReference<List<Person>>() {});

最后我们可以输出personList,看看是否成功转换:

for (Person person : personList) {
    System.out.println(person.getName() + ", " + person.getAge());
}

输出结果:

John, 30
David, 25
Mary, 35
3. 总结

使用Jackson library将JSON对象转换为Java List对象需要使用ObjectMapper,其中的readValue()方法可以方便地实现这个过程。在代码编写过程中,请尽量保证JSON字符串和Java对象的类型匹配,以避免不必要的错误。