想要只包含Genson映射到JSON的对象的某些字段

时间:2016-06-02 08:09:11

标签: json genson

我的Pojo类包含50个字段,我只需要将10个字段转换为json。

Genson genson = new Genson.Builder().include("address4", User.class).create();
String json = genson.serialize(user);

“include()”方法似乎不起作用。请帮助。

2 个答案:

答案 0 :(得分:1)

Genson genson = new Genson.Builder()
                 .exclude(Object.class)//this excludes all object types
                 .include("address4", User.class).create();//then add only required fields
String json = genson.serialize(user);

答案 1 :(得分:0)

一个选项是默认情况下禁用所有属性,并选择性地包含你想要的那些:

new GensonBuilder()
  .useFields(false)
  .useMethods(false)
  .include("address4", User.class)
  .create();

请注意,我认为您还可以在要包含的字段上使用@JsonProperty注释,而不是通过GensonBuilder包含它们。

如果您感觉自己有助于lib,那么您还可以改进PropertyFilter class以支持字段名称的正则表达式,或者添加另一种方法,即excludeAll(Class clazz)/ includeAll(Class clazz),这将排除此类中的所有属性。我打开this issue来跟踪此功能。