json序列化的Jackson java对象不包括空字段
我有两个java bean,如下所示:json序列化的Jackson java对象不包括空字段,java,json,jackson,Java,Json,Jackson,我有两个java bean,如下所示: public class Class1 { private String field1; private Object field2; //getter and setter } public class Class2 { private Map<String,Object> field; //getter and setter } Class2:当map的值为null时 { field:{"key":null
public class Class1 {
private String field1;
private Object field2;
//getter and setter
}
public class Class2 {
private Map<String,Object> field;
//getter and setter
}
Class2:当map的值为null时
{
field:{"key":null}
}
我的问题是这两者有什么区别?为什么Class1在json中不包含空字段?如何在Class1的json中包含空字段?我尝试了以下方法,但无效:
@JsonInclude(JsonInclude.Include.ALWAYS)
public class Class1 {
private String field1;
private Object field2;
//getter and setter
}
甚至在现场层面上进行了尝试:
public class Class1 {
private String field1;
@JsonInclude(JsonInclude.Include.ALWAYS)
private Object field2;
//getter and setter
}
我用的是运动衫 以下是杰克逊的例子:
ObjectMapper mapper = new ObjectMapper();
Class1 class1 = new Main().new Class1();
System.out.println(mapper.writeValueAsString(class1));
输出为:
{“field1”:null,“field2”:null}
您是否尝试过
@JsonInclude(Include.NON_NULL)
?尝试过,但我的要求是包含NULL字段。我认为默认情况下它不会包含NULL字段,我尝试过@JsonInclude(JsonInclude.Include.ALWAYS)将它们包含在json中,但没有效果。是的,对不起,我的错。如何自定义您自己的对象映射器
?看(它实际上与你所遵循的相反)可能的重复
ObjectMapper mapper = new ObjectMapper();
Class1 class1 = new Main().new Class1();
System.out.println(mapper.writeValueAsString(class1));