Хотите включить только некоторые поля объекта, которые отображаются в 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), который исключит все свойства из этого класса. Я открыл эту проблему, чтобы отслеживать эту функцию.