使用ObjectMapper把Json转换为复杂的实体类

使用ObjectMapper把JSON转换为复杂的实体类的方法如下:

使用ObjectMapper把JSON转换为复杂的实体类的方法如下:

1.引入ObjectMapper库

在项目中引入ObjectMapper依赖即可,可以使用Maven或Gradle等构建工具。

Maven:

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>${jackson.version}</version>
</dependency>

Gradle:

implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.4'

2.创建实体类

创建需要转换的实体类,并在其中定义变量名与JSON中的键名相同的变量。

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

3.将JSON解析成需要转换的实体类

使用ObjectMapper类的方法把JSON解析成需要转换的实体类。

ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);

其中,json是需要解析的JSON字符串,Person.class是需要转换成的实体类的类型。

4.示例说明

下面是JSON字符串解析成Person实体类的代码示例:

String json = "{ \"name\": \"Alice\", \"age\": 20 }";
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(json, Person.class);
System.out.println(person.getName() + ", " + person.getAge());

输出结果为:

Alice, 20

另外,如果JSON中包含List或Map等复杂数据类型,也可以通过类似定义实体类的方式解析。例如,下面是JSON字符串解析成包含List的实体类的代码示例:

public class People {
  private List<Person> personList;

  public List<Person> getPersonList() {
    return personList;
  }

  public void setPersonList(List<Person> personList) {
    this.personList = personList;
  }
}

解析JSON字符串:

String json = "{ \"personList\": [{ \"name\": \"Alice\", \"age\": 20 }, { \"name\": \"Bob\", \"age\": 25 }] }";
ObjectMapper objectMapper = new ObjectMapper();
People people = objectMapper.readValue(json, People.class);
System.out.println(people.getPersonList().get(0).getName() + ", " + people.getPersonList().get(0).getAge());
System.out.println(people.getPersonList().get(1).getName() + ", " + people.getPersonList().get(1).getAge());

输出结果为:

Alice, 20
Bob, 25

本文标题为:使用ObjectMapper把Json转换为复杂的实体类

基础教程推荐