📜  在Java中处理 JSON 数据(1)

📅  最后修改于: 2023-12-03 15:07:53.744000             🧑  作者: Mango

在Java中处理 JSON 数据

什么是 JSON?

JSON (JavaScript Object Notation) 是一种轻量级的数据格式,它通常用于数据交换。JSON 能够很好地与前端 JavaScript 应用程序一起工作,因为它是 JavaScript 对象的子集。

在 Java 中处理 JSON 数据

Java 中有许多处理 JSON 数据的 API。下面介绍其中两个:

Gson

Gson 是一个 Google 推出的功能强大的处理 JSON 数据的 API,它具有以下特点:

  • 支持将任何 Java 对象序列化成 JSON。
  • 支持将 JSON 反序列化为 Java 对象。
  • 支持将 JSON 解析成 DOM 树。

下面是使用 Gson 将一个 Java 对象序列化成 JSON 的示例:

// 导入 Gson 包
import com.google.gson.Gson;

// 创建一个 Java 对象
class User {
    String name;
    int age;
    String[] hobbies;

    User(String name, int age, String[] hobbies) {
        this.name = name;
        this.age = age;
        this.hobbies = hobbies;
    }
}

// 将 Java 对象序列化成 JSON
User user = new User("张三", 20, new String[]{"篮球", "游泳"});
Gson gson = new Gson();
String json = gson.toJson(user);

System.out.println(json);

输出结果:

{"name":"张三","age":20,"hobbies":["篮球","游泳"]}
Jackson

Jackson 是另一个流行的处理 JSON 数据的 API。它具有以下特点:

  • 支持将任何 Java 对象序列化成 JSON。
  • 支持将 JSON 反序列化为 Java 对象。
  • 支持将 JSON 解析成树形结构(JsonNode)。

下面是使用 Jackson 将一个 Java 对象序列化成 JSON 的示例:

// 导入 Jackson 包
import com.fasterxml.jackson.databind.ObjectMapper;

// 创建一个 Java 对象
class User {
    String name;
    int age;
    String[] hobbies;

    User(String name, int age, String[] hobbies) {
        this.name = name;
        this.age = age;
        this.hobbies = hobbies;
    }
}

// 将 Java 对象序列化成 JSON
User user = new User("张三", 20, new String[]{"篮球", "游泳"});
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(user);

System.out.println(json);

输出结果:

{"name":"张三","age":20,"hobbies":["篮球","游泳"]}
总结

本文介绍了两个处理 JSON 数据的 Java API,它们分别是 Gson 和 Jackson。使用这些 API,我们可以轻松地将 Java 对象序列化成 JSON 或将 JSON 反序列化为 Java 对象。