📅  最后修改于: 2023-12-03 15:23:09.799000             🧑  作者: Mango
JSON(JavaScript Object Notation) 是一种常用的数据格式,常用于数据传输和存储。
在 Java 中,我们可以使用一些库来解析 JSON 对象,本文将介绍三种常用的方式:手动解析、使用 Gson 库和使用 Jackson 库。
手动解析 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 数据。
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 库是另一个流行的 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 数据。