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 数据。
还没有评论,来说两句吧...