在Java中JSON转成实体类的list,代码实现所有方法\
时间: 2024-02-03 19:15:44 浏览: 61
Android JSON数据与实体类之间的相互转化(GSON的用法)
首先,我们需要使用一个JSON解析库来将JSON转换为Java对象。在这里,我使用的是Jackson库。
1. 添加Jackson库依赖
在Maven项目中,在pom.xml中添加以下依赖:
```
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
```
2. 创建实体类
假设我们有一个JSON数组,其中每个元素都是一个包含“name”和“age”的对象。我们可以创建一个类来表示此对象,如下所示:
```
public class Person {
private String name;
private int age;
// getter and setter methods
}
```
3. JSON转换
现在我们可以使用Jackson库将JSON转换为Java对象。以下是一个示例方法,它将JSON字符串转换为Person对象列表:
```
public List<Person> parseJson(String json) throws IOException {
ObjectMapper mapper = new ObjectMapper();
List<Person> persons = mapper.readValue(json, new TypeReference<List<Person>>(){});
return persons;
}
```
我们首先创建ObjectMapper对象,然后使用它的readValue()方法将JSON字符串转换为List<Person>对象。请注意,我们使用TypeReference来告诉Jackson库我们要将JSON转换为一个包含Person对象的列表。
完整代码如下:
```
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class JsonParser {
public static void main(String[] args) throws IOException {
String json = "[{\"name\":\"John\",\"age\":30},{\"name\":\"Jane\",\"age\":25}]";
List<Person> persons = parseJson(json);
for (Person person : persons) {
System.out.println(person.getName() + " " + person.getAge());
}
}
public static List<Person> parseJson(String json) throws IOException {
ObjectMapper mapper = new ObjectMapper();
List<Person> persons = mapper.readValue(json, new TypeReference<List<Person>>(){});
return persons;
}
}
class Person {
private String name;
private int age;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
```
阅读全文