json序列化的Jackson java对象不包括空字段

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

我有两个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}
}
我的问题是这两者有什么区别?为什么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));