本人主要用Jackson来将json字符串转为java对象,若将java对象转为json则用Fastjson好一些。
文章目录
一、依赖
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
二、Json转Java对象
1. json字符串转java对象
ObjectMapper mapper = new ObjectMapper();
Xxxx xxxx = mapper.readValue(str, Xxxx.class);
2. json文件转java对象
ObjectMapper mapper = new ObjectMapper();
Xxxx xxxx = mapper.readValue(file, Xxxx.class);
三、json和java属性字段差异问题
1. java实体类中属性和json字段不一致
在java类的属性上添加@JsonProperty(value = "xxx")
@JsonProperty(value = "aaa_bbb")
private int aaaBbb;
2. json字段数量和java实体类属性数量不一致
若java实体类的属性数量大于json字符串的属性数量没有任何问题,对应java对象属性的值为null;反之则报错,所以需要在实体类上面加上该注解:
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Java {
}