在 Java 中,将 JSON 转换为实体对象通常使用 JSON 库来完成。以下是几种常见的方式,每种方式都包括所需的步骤、依赖坐标以及示例代码:
步骤流程:
依赖坐标(Maven):
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
依赖坐标(Gradle):
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
示例代码: 假设有如下 JSON 字符串和对应的实体类:
JSON 字符串:
{
"id": 1,
"name": "John Doe",
"age": 30
}
实体类:
import com.fasterxml.jackson.annotation.JsonProperty;
public class Person {
private int id;
private String name;
private int age;
// Getters and setters (or use Lombok annotations)
@JsonProperty("id")
public int getId() {
return id;
}
@JsonProperty("id")
public void setId(int id) {
this.id = id;
}
@JsonProperty("name")
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
@JsonProperty("age")
public int getAge() {
return age;
}
@JsonProperty("age")
public void setAge(int age) {
this.age = age;
}
}
转换代码:
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonToEntityExample {
public static void main(String[] args) throws Exception {
String jsonString = "{\"id\": 1,\"name\": \"John Doe\",\"age\": 30}";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonString, Person.class);
System.out.println("Person: " + person.getName() + ", Age: " + person.getAge());
}
}
步骤流程:
依赖坐标(Maven):
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
依赖坐标(Gradle):
implementation 'com.google.code.gson:gson:2.8.9'
示例代码: 与上面的示例相同,只是使用 Gson 替代 Jackson 进行转换。
import com.google.gson.Gson;
public class JsonToEntityExample {
public static void main(String[] args) {
String jsonString = "{\"id\": 1,\"name\": \"John Doe\",\"age\": 30}";
Gson gson = new Gson();
Person person = gson.fromJson(jsonString, Person.class);
System.out.println("Person: " + person.getName() + ", Age: " + person.getAge());
}
}
这两种方式都是常见的将 JSON 转换为实体对象的方法。选择其中一种取决于你的项目需求和个人偏好。