【问题标题】:Filter Fields on Jackson Serialization杰克逊序列化过滤字段
【发布时间】:2012-10-16 20:54:54
【问题描述】:

Jackson 序列化库中的注释对象。在每个序列化的基础上,我想告诉 Jackson 要序列化哪些字段和子字段。

我有一些字段名称树,我只想包括那些:

root
  |-sub_field_1
  |-sub_object_1
    |-sub_field_2
  |-sub_object_2

如果没有这个功能,我会得到类似的东西:

{
  "sub_field_1":123,
  "sub_field_2":456,
  "sub_object_1":{
    "sub_field_1":123,
    "sub_field_2":456
  },
  "sub_object_2":{
    "sub_field_1":123,
    "sub_field_2":456
  }      
}

有了这个功能,我会得到类似的东西:

{
  "sub_field_1":123,
  "sub_object_1":{
    "sub_field_2":456
  },
  "sub_object_2":{
    "sub_field_1":123,
    "sub_field_2":456
  }      
}

我不能使用 SimpleBeanPropertyFilter,因为不同级别的不同字段可能共享相同的名称。

谢谢,

约翰

【问题讨论】:

    标签: json serialization tree jackson field


    【解决方案1】:

    如果您想要实现的是从特定类中排除特定字段(例如:仅从类 Bar 中排除“foo”),那么您可以尝试genson library

    Genson genson = new Genson.Builder().exclude("foo", Bar.class).create();
    genson.serialize(yourObject);
    

    【讨论】:

    • 不幸的是,这不起作用,因为从上面看,“sub_object_1”和“sub_object_2”可能是相同的类型,但它们的字段被序列化不同。
    猜你喜欢
    • 2015-08-01
    • 2021-12-02
    • 2013-07-10
    • 1970-01-01
    • 2014-05-05
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    相关资源
    最近更新 更多