@JsonIgnoreType注解作用
该类作为别的类的属性时,该属性忽略序列化和反序列化。
子级实体
@JsonIgnoreType
public class JsonTestModel {
String name;
Date time;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
父级实体
public class JsonTestPerantModel {
String perant;
JsonTestModel jsonTestModel;
public String getPerant() {
return perant;
}
public void setPerant(String perant) {
this.perant = perant;
}
public JsonTestModel getJsonTestModel() {
return jsonTestModel;
}
public void setJsonTestModel(JsonTestModel jsonTestModel) {
this.jsonTestModel = jsonTestModel;
}
}
测试类
public class JsonPerantTests {
static JsonTestPerantModel testModel;
@BeforeClass
public static void setTestModel(){
JsonTestModel jsonTestModel = new JsonTestModel();
jsonTestModel.setName("@JsonIgnoreProperties测试");
jsonTestModel.setTime(new Date());
JsonTestPerantModel jsonTestPerantModel = new JsonTestPerantModel();
jsonTestPerantModel.setPerant("父级");
jsonTestPerantModel.setJsonTestModel(jsonTestModel);
testModel = jsonTestPerantModel;
}
@Test
public void test() throws IOException {
ObjectMapper mapper = new ObjectMapper();
//序列化
String json = mapper.writeValueAsString(testModel);
System.out.println(json);
//反序列化
JsonTestPerantModel readValue = mapper.readValue(json, JsonTestPerantModel.class);
System.out.println("perant:"+readValue.getPerant());
System.out.println("name:"+readValue.getJsonTestModel().getName());
System.out.println("time:"+readValue.getJsonTestModel().getTime());
}
@AfterClass
public static void tearDown() {
testModel = null;
}
}
测试结果
不加注解
{"perant":"父级","jsonTestModel":{"name":"@JsonIgnoreProperties测试","time":1575444535600}}
perant:父级
name:@JsonIgnoreProperties测试
time:Wed Dec 04 15:28:55 CST 2019
加注解
{"perant":"父级"}
perant:父级