Java中的JSON处理:库与实战示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Java中的JSON处理:库概览与实战示例



JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web开发、移动应用和微服务中。在Java中,有多个流行的库可用于处理JSON。本文将介绍三个主要库:Jackson、Gson和org.json,并提供解析、序列化和生成JSON的实战示例。



1. Jackson — 最流行的库



Jackson(com.fasterxml.jackson.core)是一个功能强大、性能卓越的库。它支持注解、流式处理和完整的映射配置。如需引入,请在Maven中添加:



<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.15.2</version></dependency>


示例:将对象序列化为JSON



import com.fasterxml.jackson.databind.ObjectMapper;import java.util.*;

public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();

// 创建对象 Map<String, Object> user = new HashMap<>(); user.put("name", "伊万"); user.put("age", 30); user.put("skills", Arrays.asList("Java", "Spring", "SQL"));

// 序列化为JSON字符串 String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); System.out.println(json); }}


输出:



{  "name" : "伊万",  "age" : 30,  "skills" : [ "Java", "Spring", "SQL" ]}


示例:将JSON解析为Java对象



import com.fasterxml.jackson.databind.ObjectMapper;

public class ParseJson { public static void main(String[] args) throws Exception { String json = "{\\"name\\":\\"安娜\\",\\"age\\":25}";

ObjectMapper mapper = new ObjectMapper(); User user = mapper.readValue(json, User.class);

System.out.println("姓名: " + user.getName()); System.out.println("年龄: " + user.getAge()); }}

class User { private String name; private int age;

// getter和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; }}


2. Gson — Google出品的轻量级简单库



Gson(com.google.code.gson)以API简洁和配置最少著称,适合小型项目。Maven配置:



<dependency>    <groupId>com.google.code.gson</groupId>    <artifactId>gson</artifactId>    <version>2.10.1</version></dependency>


示例:从Map生成JSON



import com.google.gson.Gson;import com.google.gson.GsonBuilder;import java.util.*;

public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder().setPrettyPrinting().create();

Map<String, Object> data = new LinkedHashMap<>(); data.put("title", "示例"); data.put("completed", false); data.put("tags", List.of("java", "json"));

String json = gson.toJson(data); System.out.println(json); }}


示例:将JSON解析为对象列表



import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import java.lang.reflect.Type;import java.util.*;

public class GsonParseList { public static void main(String[] args) { String json = "[{\\"id\\":1,\\"name\\":\\"商品A\\"},{\\"id\\":2,\\"name\\":\\"商品B\\"}]";\

推荐