javajson字符串转对象集合
时间: 2024-09-06 20:07:55 浏览: 73
Java中Json字符串直接转换为对象的方法(包括多层List集合)
在Java中,将JSON字符串转换成对象集合通常需要使用JSON处理库,比如Google的Gson或Jackson。以下是使用Gson库进行转换的一个基本示例:
首先,你需要在项目中添加Gson库的依赖。如果你使用Maven,可以在`pom.xml`中添加如下依赖:
```xml
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version> <!-- 请检查最新的版本号 -->
</dependency>
```
然后,可以使用Gson类的`fromJson`方法来进行转换。假设你有一个JSON数组的字符串,并且你想要将这个字符串转换为特定类型对象的集合,以下是一个示例代码:
```java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
public class JsonExample {
public static void main(String[] args) {
String jsonStr = "[{\"name\":\"张三\",\"age\":30},{\"name\":\"李四\",\"age\":25}]";
// 定义集合中元素的类型
Type collectionType = new TypeToken<List<Person>>() {}.getType();
Gson gson = new Gson();
// 将JSON字符串转换为List集合
List<Person> personList = gson.fromJson(jsonStr, collectionType);
// 输出转换结果
for (Person person : personList) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
// 假设有一个Person类
public static class Person {
private String name;
private int age;
// getter和setter方法
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;
}
}
}
```
在上述示例中,`Person`类需要根据JSON对象中的字段来定义相应的属性和访问器方法。`fromJson`方法的第二个参数使用`TypeToken`来动态获取集合的类型信息,这允许你将JSON数组转换为任何类型的集合。
阅读全文