使用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转换为复杂的实体类
基础教程推荐
猜你喜欢
- javascript es6的常用语法你知道吗 2023-12-15
- img的src地址是一个请求的方式来显示图片方法 2023-08-01
- Spring Boot自动配置的原理及@Conditional条件注解 2023-02-11
- Mybatis详细对比一级缓存与二级缓存 2023-06-10
- mybatis自定义参数类型转换器数据库字段加密脱敏 2023-05-09
- JDO 2.0查询语言的特点 2023-12-17
- 在js文件中如何获取basePath处理js路径问题 2024-01-10
- Java中初始化List集合的八种方式汇总 2023-01-18
- Java字符串中指定部分反转的三种方式 2023-08-10
- Java基础学习之构造方法详解 2023-04-23