1.使用
1.pom
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
2.实体类 Student
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@JsonIgnoreProperties(value = { "address", "score" })
public class Student implements Serializable {
@JsonProperty(value = "sName", required = true)
private String name;
@JsonIgnore
private int age;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GTM+8")
private Date birthday;
private String address;
private String score;
}
3.测试类
public class TestMain {
public static void main(String[] args) throws JsonProcessingException {
Student student = new Student();
student.setName("张三");
student.setAge(20);
student.setBirthday(new Date());
student.setAddress("上海市");
student.setScore("90");
// 使用writeValuesAsString把对象转化成json字符串。
String stuJson = new ObjectMapper().writeValueAsString(student);
System.out.println(stuJson);
//使用readValue把字符串转化为对象
Student stu = new ObjectMapper().readValue(stuJson, Student.class);
System.out.println(stu.toString());
System.out.println("==============================");
String json1 = "{\"age\":20,\"birthday\":\"2022-04-18 09:38:47\",\"address\":\"上海市\",\"score\":\"90\",\"sName\":\"张三\"}";
Student stu1 = new ObjectMapper().readValue(json1, Student.class);
System.out.println(stu1.toString());
}
}
测试结果:
{"birthday":"2022-04-18 09:42:58","sName":"张三"}
Student(name=张三, age=0, birthday=Mon Apr 18 17:42:58 CST 2022, address=null, score=null)
==============================
Student(name=张三, age=0, birthday=Mon Apr 18 17:38:47 CST 2022, address=null, score=null)
2.说明
@JsonProperty
value属性: 代表该属性序列化和反序列化的时候的key值。
required属性: 默认false,例如当required=true的时候,当反序列化的时候没有找到key值,就会报错。
@JsonIgnore
json序列化 会忽略这个字段
json反序列化,会忽略这个字段的赋值
@JsonFormat
json序列化,通过后面设置的格式进行数据的输出
json反序列化,通过设定的格式 进行数据的赋值
@JsonIgnoreProperties
类注解,
json序列化时,会忽略这些字段
json反序列化,会忽略这些字段的赋值