使用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转换为复杂的实体类


猜你喜欢
- 如何加密配置文件里的敏感数据 2023-01-13
- Java 多线程并发AbstractQueuedSynchronizer详情 2023-01-13
- java – 数据库表中的多语言字段 2023-11-02
- Java基础面试题之volatile详解 2023-01-18
- jsp中点击图片弹出文件上传界面及预览功能的实现 2024-01-30
- Java RabbitMQ的三种Exchange模式 2023-04-17
- 使用IDEA编写jsp时EL表达式不起作用的问题及解决方法 2023-07-31
- JSP实现登录功能之添加验证码 2023-08-01
- Java数组与二维数组及替换空格实战真题讲解 2023-03-11
- Java实现定时任务的方法详解 2023-06-23