JAVA解析JSON数据
封面图
•
2025-12-29
•
Java
270
0
0
0
在 Java 中解析 JSON 数据,通常可以使用以下几种方式: --- ## ✅ 1. 使用 **Jackson**(推荐) Jackson 是一个高性能的 JSON 处理库,广泛用于 Java 项目中。 ### 📦 依赖(Maven): ```xml <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.16.1</version> </dependency> ``` ### 🔧 示例代码: #### 1.1 解析 JSON 字符串到 Java 对象 ```java import com.fasterxml.jackson.databind.ObjectMapper; public class JsonExample { public static void main(String[] args) throws Exception { String json = "{\"name\":\"Alice\",\"age\":25}"; ObjectMapper mapper = new ObjectMapper(); Person person = mapper.readValue(json, Person.class); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } } class Person { private String name; private int age; // Getter and 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; } } ``` #### 1.2 解析 JSON 数组 ```java String jsonArray = "[{\"name\":\"Alice\"}, {\"name\":\"Bob\"}]"; List<Person> people = mapper.readValue(jsonArray, mapper.getTypeFactory().constructCollectionType(List.class, Person.class)); ``` --- ## ✅ 2. 使用 **Gson** Gson 是 Google 提供的一个简单易用的 JSON 库。 ### 📦 依赖(Maven): ```xml <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> ``` ### 🔧 示例代码: ```java import com.google.gson.Gson; public class GsonExample { public static void main(String[] args) { String json = "{\"name\":\"Alice\",\"age\":25}"; Gson gson = new Gson(); Person person = gson.fromJson(json, Person.class); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } } ``` --- ## ✅ 3. 使用 **org.json**(轻量级) 适用于简单的 JSON 操作。 ### 📦 依赖(Maven): ```xml <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20231013</version> </dependency> ``` ### 🔧 示例代码: ```java import org.json.JSONObject; public class JsonExample { public static void main(String[] args) { String json = "{\"name\":\"Alice\",\"age\":25}"; JSONObject obj = new JSONObject(json); String name = obj.getString("name"); int age = obj.getInt("age"); System.out.println("Name: " + name); System.out.println("Age: " + age); } } ``` --- ## ✅ 4. 使用 **Java 内置类(JSON-B)**(JDK 11+) 从 JDK 11 开始,Java 原生支持 JSON-B(Java API for JSON Binding)。 ### 🔧 示例代码: ```java import jakarta.json.bind.Jsonb; import jakarta.json.bind.JsonbBuilder; public class JsonbExample { public static void main(String[] args) { String json = "{\"name\":\"Alice\",\"age\":25}"; Jsonb jsonb = JsonbBuilder.create(); Person person = jsonb.fromJson(json, Person.class); System.out.println("Name: " + person.getName()); System.out.println("Age: " + person.getAge()); } } ``` --- ## ✅ 总结 | 工具 | 特点 | 推荐场景 | |------|------|----------| | Jackson | 高性能、功能强大 | 企业级应用、复杂结构 | | Gson | 简单易用 | 快速开发、小型项目 | | org.json | 轻量、简单 | 快速解析小段 JSON | | JSON-B | JDK 原生支持 | JDK 11+,不需要额外依赖 | --- 如果你有具体的 JSON 数据格式或需要解析的字段,我可以帮你写更详细的代码示例。欢迎继续提问!
上一篇:
学会忘记那个不爱你的人
下一篇:
Java解析Json字符串(数组或列表)
标题录入,一次不能超过6条
留言
评论