Size: a a a

2021 June 29

BP

Bogdan Panchenko in pro.jvm
У меня не хочет. Но это в бесплатной
источник

NK

Nikita Konovalov in pro.jvm
Коллеги, кто знает как при сериализации применить @JsonInclude(Include.NON_NULL) для всех вложенных полей ? (Если некоторые поля являются классами, то аннотация автоматически на неё не распространяется).
Особенно, если вложенная dto из внешней библиотеки и расставить в ней аннотации нет возможности.
источник

ДР

Даниил Разоренов... in pro.jvm
А нужно только для сериализации конкретного класса? Если поменять defaultPropertyInclusion (для всех) такое решение не подойдет?
источник

M

M in pro.jvm
Если это спринг
spring:
 jackson:
   default-property-inclusion: non_null
для джэксона аналогично
источник

NK

Nikita Konovalov in pro.jvm
глобальную настройку пробовал, но засада , как раз есть классы (в том числе с вложенными дто из сторонних библиотек), где наборот нужны null
источник

DS

Dmitry Same in pro.jvm
Разные мапперы сделать?
источник

AG

Alexey Genus in pro.jvm
На самом деле логично, почему так не работает. Аннотация @JsonInclude работает на уровне класса. Это значит, что объект этого класса может быть полем любого объекта и это будет везде работать. Поэтому, если бы она работала на все вложенные поля, то могла бы подпортить другие сериализацию вообще несвязанных объектов.
Сейчас попробую на примере объяснить, что имею в виду.
@JsonInclude(Include.NON_NULL)
class A { Long value; }
class B { A a; }
class C { A a; }


В этом случае поле value будет пропущено всегда, если оно null: и для B и для C. И так мы представляем себе механику jackson’а.
А теперь представьте, что существует некий параметр propagate, который позволяет распространять эту аннотацию на поля:
class A { Long value; }
class B { A a; }
@JsonInclude(Include.NON_NULL, propagate=true)
class C { A a; }


В этом случае получится так, что для класса B поле a не будет сериализовано, если оно равно null, хотя на самом классе нет никакой аннотации. Это совершенно неочевидно, если классы B и C находятся в коде далеко друг от друга.

Короче, я бы предложил сделать свой сериализатор, так будет проще всего
источник

NK

Nikita Konovalov in pro.jvm
Спасибо ! 🤝
источник

N

Nikitka in pro.jvm
Добрый день, есть способ при сериализации через гзон ингорировать ключ в результате, есть ли какие либо аннотации для этого?
источник

ДК

Дмитрий Карманов... in pro.jvm
источник

ДК

Дмитрий Карманов... in pro.jvm
Можно явно через экспоуз указать что надо сериализоватт
источник

ДК

Дмитрий Карманов... in pro.jvm
Можно стратегию написать
источник

N

Nikitka in pro.jvm
Понял, спасибо, я думал может есть встроенный механизм
источник

A

AlexOneTrek in pro.jvm
Помогите настроить artifacts в intelij что бы сбилдить с resources (папка помечена как root), но все равно не попадает в jar файл
источник

AA

Anton Arhipov in pro.jvm
а чем собирается то?
источник

A

AlexOneTrek in pro.jvm
idea intelij
источник

AA

Anton Arhipov in pro.jvm
просто обычно папка resources есть в maven или gradle проекте
если это чисто идеевский проект, то директория resources должна быть помечена как resources root
источник

AA

Anton Arhipov in pro.jvm
и потом во вкладке с артефактами надо задекларировать артефакт как результат билда данного модуля
источник

A

AlexOneTrek in pro.jvm
Короче я сделал
источник

B1

Burevesnik 1960 in pro.jvm
емае, а это не вы были на тех трейне?
Просто поражаюсь, в этом чате есть Тагир Валеев, А. Шипилёв,  вроде бы видел Б. Садогурского ранее..
Какой то клондайк экспертов)))
источник