java中将json字符串转化成对象
在 Java 中将 JSON 转化为对象,通常使用 JSON 解析库来实现。最常用的 JSON 解析库是 Jackson 和 Gson。下面介绍如何使用 Jackson 和 Gson 将 JSON 字符串转换为 Java 对象。
1. 使用 Jackson 将 JSON 转化为对象
Jackson 是一个功能强大的 JSON 处理库。它的 ObjectMapper
类可以轻松地将 JSON 转化为 Java 对象。
步骤:
- 添加 Jackson 依赖(Maven 项目):
1 2 3 4 5
| <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency>
|
- 定义 Java 类(假设 JSON 表示一个
Person
对象):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public class Person { private String name; private int age;
// Getters and Setters 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; } }
|
- 使用 Jackson 的
ObjectMapper
将 JSON 字符串转换为 Java 对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import com.fasterxml.jackson.databind.ObjectMapper;
public class Main { public static void main(String[] args) { String json = "{\"name\":\"John\", \"age\":30}";
ObjectMapper objectMapper = new ObjectMapper(); try { Person person = objectMapper.readValue(json, Person.class); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } catch (Exception e) { e.printStackTrace(); } } }
|
输出:
2. 使用 Gson 将 JSON 转化为对象
Gson 是由 Google 提供的轻量级 JSON 处理库,它可以很方便地将 JSON 转化为 Java 对象。
步骤:
- 添加 Gson 依赖(Maven 项目):
1 2 3 4 5
| <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency>
|
- 定义 Java 类(与 Jackson 示例中的
Person
类相同)。
- 使用 Gson 将 JSON 字符串转换为 Java 对象:
1 2 3 4 5 6 7 8 9 10 11 12 13
| import com.google.gson.Gson;
public class Main { public static void main(String[] args) { String json = "{\"name\":\"John\", \"age\":30}";
Gson gson = new Gson(); Person person = gson.fromJson(json, Person.class);
System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } }
|
输出:
总结:
- Jackson:功能强大、广泛使用,支持更多的高级功能(如流处理、注解等)。
- Gson:轻量级,简单易用,适合基础的 JSON 解析。
两者都可以轻松将 JSON 转换为 Java 对象,具体使用哪一个可以根据项目需求来选择。
3. 使用 fastjson将 JSON 转化为对象
fastjson
是阿里巴巴开发的一款高效 JSON 解析库,它比 Jackson 和 Gson 更加轻量级和高效。使用 fastjson
可以快速将 JSON 字符串转换为 Java 对象。
- 使用 fastjson 将 JSON 转化为对象
步骤:
- 添加 fastjson 依赖(Maven 项目):
1 2 3 4 5
| <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency>
|
- 定义 Java 类(与之前示例中的
Person
类相同):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public class Person { private String name; private int age;
// Getters and Setters 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; } }
|
- 使用 fastjson 将 JSON 字符串转换为 Java 对象:
1 2 3 4 5 6 7 8 9 10 11 12 13
| import com.alibaba.fastjson.JSON;
public class Main { public static void main(String[] args) { String json = "{\"name\":\"John\", \"age\":30}";
// 使用 Fastjson 的 JSON 类将 JSON 字符串转换为 Java 对象 Person person = JSON.parseObject(json, Person.class);
System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } }
|
输出:
- 使用 fastjson 将对象转换为 JSON 字符串
Fastjson 还支持将 Java 对象转换为 JSON 字符串,类似于其他 JSON 解析库的 toJson()
方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import com.alibaba.fastjson.JSON;
public class Main { public static void main(String[] args) { Person person = new Person(); person.setName("John"); person.setAge(30);
// 将对象转换为 JSON 字符串 String jsonString = JSON.toJSONString(person);
System.out.println("JSON String: " + jsonString); } }
|
输出:
1
| JSON String: {"age":30,"name":"John"}
|
总结:
- Fastjson 提供了高效的 JSON 解析能力,并且使用方式简洁易懂。
- 和 Jackson、Gson 一样,Fastjson 也可以快速将 JSON 字符串转换为 Java 对象,并且能将对象转换回 JSON 字符串。