📜  在 Java 中解析 JSON 对象 - Javascript (1)

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

在 Java 中解析 JSON 对象

JSON(JavaScript Object Notation) 是一种常用的数据格式,常用于数据传输和存储。

在 Java 中,我们可以使用一些库来解析 JSON 对象,本文将介绍三种常用的方式:手动解析、使用 Gson 库和使用 Jackson 库。

手动解析 JSON 对象

手动解析 JSON 对象最基本的方法就是使用 Java 的 JSONObject 类。首先,我们需要将 JSON 字符串转换为 JSONObject 对象:

import org.json.JSONObject;

String jsonString = "{\"name\":\"Jack\",\"age\":24}";
JSONObject obj = new JSONObject(jsonString);

接着,我们可以使用 get 方法来获取指定字段的值,例如:

String name = obj.getString("name");
int age = obj.getInt("age");

手动解析 JSON 对象需要编写较多的代码,但是可以灵活地处理各种格式的 JSON 数据。

使用 Gson 库

Google 的 Gson 库可以快速地将 JSON 字符串解析为 Java 对象,并将 Java 对象转换为 JSON 字符串。使用 Gson 库,我们只需要定义一个对应 JSON 的 Java 类,然后使用 Gson 将 JSON 解析为 Java 对象:

import com.google.gson.Gson;

class Person {
    private String name;
    private int age;

    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;
    }
}

String jsonString = "{\"name\":\"Jack\",\"age\":24}";
Gson gson = new Gson();
Person person = gson.fromJson(jsonString, Person.class);

同样地,我们也可以将 Java 对象转换为 JSON 字符串:

Person person = new Person();
person.setName("Jack");
person.setAge(24);
String jsonString = gson.toJson(person);

使用 Gson 库可以节省大量的编写代码的时间,特别是在处理复杂的 JSON 数据时。

使用 Jackson 库

Jackson 库是另一个流行的 JSON 库,同样可以将 JSON 字符串转换为 Java 对象,并将 Java 对象转换为 JSON 字符串。使用 Jackson 库,我们只需要定义一个对应 JSON 的 Java 类,然后使用 ObjectMapper 将 JSON 解析为 Java 对象:

import com.fasterxml.jackson.databind.ObjectMapper;

class Person {
    private String name;
    private int age;

    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;
    }
}

String jsonString = "{\"name\":\"Jack\",\"age\":24}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);

同样地,我们也可以将 Java 对象转换为 JSON 字符串:

Person person = new Person();
person.setName("Jack");
person.setAge(24);
String jsonString = objectMapper.writeValueAsString(person);

使用 Jackson 库和使用 Gson 库类似,可以根据个人习惯自由选择。

总的来说,无论是手动解析 JSON 对象,还是使用 Gson 库或 Jackson 库,都可以很方便地解析 JSON 数据。