java中如何将json字符串转化为对象
时间: 2025-06-28 21:11:20 浏览: 22
### Java 将 JSON 字符串转换成对象方法
在 Java 中,可以使用多种库来实现 JSON 字符串到对象的转换。Jackson 和 Gson 是两个广泛使用的库。
#### 使用 Jackson 库进行转换
为了将 JSON 字符串转换为对象,首先需要引入 Jackson 的依赖项:
```xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
```
下面是一个简单的例子展示如何利用 `ObjectMapper` 类完成这一操作[^1]:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonToObjectExample {
public static void main(String[] args) throws Exception {
String jsonString = "{\"name\":\"John\", \"age\":30}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);
System.out.println(person.getName());
System.out.println(person.getAge());
}
}
class Person {
private String name;
private int age;
// Getters and Setters
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
public String getName() {return this.name;}
public void setName(String name){this.name=name;}
public Integer getAge(){return this.age;}
public void setAge(Integer age){this.age=age;}
}
```
这段代码展示了创建一个名为 `JsonToObjectExample` 的类,在其中定义了一个静态方法用于测试目的。这里还定义了一个辅助性的 `Person` 类表示要反序列化的数据结构。最后调用了 `objectMapper.readValue()` 函数来进行实际的数据转换工作。
#### 使用 Gson 进行转换
对于那些更喜欢 Google 提供工具的人来说,Gson 可能会成为更好的选择。同样地,先添加 Maven 依赖关系:
```xml
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
```
下面是采用 Gson 实现相同功能的例子[^2]:
```java
import com.google.gson.Gson;
public class JsonToMapExample {
public static void main(String[] args){
String jsonInput = "{ \"name\" : \"Tom\", \"age\" : 25 }";
Gson gson = new Gson();
Map<String,Object> map = gson.fromJson(jsonInput , HashMap.class);
System.out.println(map.get("name"));
System.out.println(map.get("age"));
}
}
```
此示例说明了当目标不是特定类型的 POJO (Plain Old Java Object),而是通用键值对存储形式如 `HashMap` 或者其他集合类型时的操作方式。
#### 处理复杂情况下的 JSON 数组转 List 集合
如果遇到的是包含多个实体记录的 JSON 数组,则可以通过指定相应的泛型参数将其直接映射为目标列表。例如,假设有一个代表多个人员信息的 JSON 数组字符串,那么可以直接按照如下方式进行处理[^3]:
```java
List<Person> peopleList = objectMapper.readValue(jsonArrayString, new TypeReference<List<Person>>() {});
// 或者使用 Gson
Type listType = new TypeToken<ArrayList<Person>>(){}.getType();
ArrayList<Person> persons = gson.fromJson(jsonArrayString, listType);
```
上述片段分别给出了基于 Jackson 和 Gson 来解析 JSON 数组并填充至 Java 列表的方式。
阅读全文
相关推荐


















