Хотите включить только некоторые поля объекта, которые отображаются в JSON Дженсоном

Мой класс Pojo содержит 50 полей, и мне нужно преобразовать только 10 полей в json.

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

Метод include() не работает. Пожалуйста, помогите.

2 ответа

Решение
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);

Можно было бы по умолчанию отключить все свойства и выборочно включить те, которые вам нужны, например:

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

Обратите внимание, что я думаю, что вы также можете использовать @JsonProperty аннотации к полям, которые вы хотите включить вместо того, чтобы включать их через GensonBuilder.

Если вы чувствуете, что можете внести свой вклад в библиотеку, вы также можете улучшить класс PropertyFilter для поддержки регулярных выражений для имени поля или добавить другой метод, который будет excludeAll(Class clazz)/includeAll(Class clazz), который исключит все свойства из этого класса. Я открыл эту проблему, чтобы отслеживать эту функцию.

Другие вопросы по тегам