Java 解析 JSON 数据是许多 Java 开发者在开发过程中经常遇到的需求,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,在 Java 中,有多种方式可以解析 JSON 数据,以下是一些常用的方法:
1、Jackson
Jackson 是一个快速的 JSON 处理库,可以轻松地将 Java 对象转换成 JSON 格式,也可以将 JSON 字符串转换成 Java 对象,使用 Jackson 解析 JSON 的基本步骤如下:
添加 Jackson 的依赖到你的项目中(以 Maven 为例):
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
使用 ObjectMapper 类来解析 JSON 字符串:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) throws Exception {
String json = "{"name":"John", "age":30, "city":"New York"}";
ObjectMapper mapper = new ObjectMapper();
// 将 JSON 字符串转换成 Java 对象
MyObject obj = mapper.readValue(json, MyObject.class);
System.out.println(obj);
}
static class MyObject {
private String name;
private int age;
private String city;
// 省略 getter 和 setter 方法
}
}
2、Gson
Gson 是 Google 开发的一个 JSON 库,它可以用来将 Java 对象序列化成 JSON 字符串,也可以将 JSON 字符串反序列化成 Java 对象,使用 Gson 解析 JSON 的基本步骤如下:
添加 Gson 的依赖到你的项目中(以 Maven 为例):
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
使用 Gson 类来解析 JSON 字符串:
import com.google.gson.Gson;
public class JsonExample {
public static void main(String[] args) {
String json = "{"name":"John", "age":30, "city":"New York"}";
Gson gson = new Gson();
// 将 JSON 字符串转换成 Java 对象
MyObject obj = gson.fromJson(json, MyObject.class);
System.out.println(obj);
}
static class MyObject {
private String name;
private int age;
private String city;
// 省略 getter 和 setter 方法
}
}
3、JSON-B
JSON Binding API(JSON-B)是 Java EE 的一部分,它提供了一种将 Java 对象转换为 JSON 格式以及将 JSON 数据转换为 Java 对象的机制,使用 JSON-B 的基本步骤如下:
添加 JSON-B 的依赖到你的项目中(以 Maven 为例):
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>
使用 Jsonb 类来解析 JSON 字符串:
import javax.json.bind.Jsonb;
import javax.json.bind.JsonbBuilder;
public class JsonExample {
public static void main(String[] args) {
String json = "{"name":"John", "age":30, "city":"New York"}";
Jsonb jsonb = JsonbBuilder.create();
// 将 JSON 字符串转换成 Java 对象
MyObject obj = jsonb.fromJson(json, MyObject.class);
System.out.println(obj);
}
static class MyObject {
private String name;
private int age;
private String city;
// 省略 getter 和 setter 方法
}
}
4、JSON-P
JSON Processing API(JSON-P)也是一个 Java EE 的一部分,它提供了一种解析和生成 JSON 数据的机制,使用 JSON-P 的基本步骤如下:
添加 JSON-P 的依赖到你的项目中(以 Maven 为例):
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.1.4</version>
</dependency>
使用 JsonReader 和 JsonObject 类来解析 JSON 字符串:
import javax.json.Json;
import javax.json.JsonReader;
import java.io.StringReader;
import java.util.stream.Stream;
public class JsonExample {
public static void main(String[] args) {
String json = "{"name":"John", "age":30, "city":"New York"}";
JsonReader reader = Json.createReader(new StringReader(json));
JsonObject obj = reader.readObject();
System.out.println(obj.getString("name")); // John
System.out.println(obj.getInt("age")); // 30
System.out.println(obj.getString("city")); // New York
}
}
每种方法都有其优缺点,Jackson 和 Gson 通常用于需要高性能和复杂数据结构处理的场合,而 JSON-B 和 JSON-P 更适合于简单场景和 Java EE 应用,开发者可以根据项目需求和个人偏好选择合适的库来解析 JSON 数据。



还没有评论,来说两句吧...