【问题标题】:jackson ignore field during object creation [duplicate]杰克逊在对象创建期间忽略字段[重复]
【发布时间】:2020-09-28 06:14:30
【问题描述】:

我有一个问题。

假设我有一个模型

public class Student{
     private int id;
     private String name;

   //getters and setters
}

然后我需要使用学生模型在不同的类中创建 2 个对象。在第一类中我需要创建具有 2 个字段的对象,在第二类中我需要创建一个字段。

public class ClassA{
     Student student = new Student();
     student.setId(id);
     student.setName(name);
}

public class ClassB{
     Student student = new Student();
     student.setId(id);
}

然后在第二类,即使我不使用第二个字段,它仍然被添加为空。

我怎样才能避免这种情况?

【问题讨论】:

  • 这是序列化还是反序列化?您期望ClassB 中的第二个字段(名称)的值是多少?
  • 这是为了序列化

标签: java json jackson


【解决方案1】:

您可以使用 Jackson 注释忽略结果 JSON 中的空值。

@JsonInclude(Include.NON_NULL)
public class ClassB{...}

在这里阅读更多: https://www.baeldung.com/jackson-ignore-null-fields

【讨论】:

    【解决方案2】:

    如果您使用 ObjectMapper 读取数据,您可以忽略未知值,如下所示。

    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);  
    

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 2022-06-22
      • 2016-09-11
      • 2016-06-06
      • 2017-03-14
      • 1970-01-01
      • 2016-04-19
      • 2016-01-16
      相关资源
      最近更新 更多