首页 > 解决方案 > Gson 在对象列表中包含字段并排除策略

问题描述

我有主对象的 Gson 序列化程序,如下所示:

Class A {
    String field1;
    String field2;
    List<B> listB;
}

和另一个类:

Class B {
    String field3;
    int field4;
    List<Object> listO;
}

我想执行 2 个操作(分别),如下所示:
1. 在 GSon 排除策略中,我想删除 B.field4 并包括所有剩余的字段。
2. 在序列化中,我只想包含 B.field4,所有其他字段都应该被清除。
使用现有代码,我可以删除具有简单标识符(如 field4)的字段,但问题是它将从所有其他嵌套对象中删除 field4(是否有)。

所以我想包含和排除基于嵌套标识符的字段,例如 B.field4 或 BCfield 5。

有什么解决办法吗?

标签: javajsonspringgson

解决方案


用户Gson's @Expose注释。

Class B {

    @Expose(serialize = false, deserialize = true)
    String field3;

    @Expose(serialize = true, deserialize = false)
    int field4;

    @Expose(serialize = false, deserialize = true)
    List<Object> listO;
}

根据您的需要调整序列化/反序列化值。


推荐阅读