java - 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。
有什么解决办法吗?
解决方案
用户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;
}
根据您的需要调整序列化/反序列化值。
推荐阅读
- java - 如何配置 RabbitMQ 客户端以使用 SSL?
- reactjs - setState() 不给数组赋值
- azure - 我们如何记录与部署在 Teams 上的 Web 应用程序机器人 Azure 的对话?
- vue.js - 在每个间隔中具有递减顺序的 Highcharts
- android - 水平滚动而不是垂直滚动的 TListview
- java - 使用现有检查点文件在 Java 中打开 RocksDB
- error-handling - 如何在我的 Vue Graphql 组件中使用错误并让其他错误在全局范围内处理?
- android - 在选项卡式活动中使用 RecyclerView 的 OnScreenRotation
- fortran - 矩阵最后会自动释放吗?
- ruby-on-rails - 是否可以验证 Gemfile.lock 中的所有宝石是否存在于 https://rubygems.org?