Как вы упоминаете, если вы хотите включить NON_NULL
свойство для всего JSON, а не только links
, вы можете использовать spring.jackson.default-property-inclusion=NON_NULL
.Однако это не исправит пустые поля шаблона.
Если вы хотите, чтобы свойство NON_NULL
было включено только для объекта Link
с использованием Jackson для сериализации, вы можете добиться этого с помощью Jackson MixIn для объекта Link
с аннотацией @JsonInclude(Include.NON_NULL)
.
Например:
@JsonInclude(Include.NON_NULL)
abstract class LinkMixIn {
}
mapper.addMixIn(Link.class, LinkMixIn.class);
Чтобы скрыть поля шаблона, вы можете добавить @JsonIgnore, еслиВы никогда не хотите, чтобы секция шаблона была сериализована, или попробуйте включить NON_DEFAULT
свойство в ответе выше, который создает новый экземпляр объекта и сравнивает его с тем, что должно быть сериализовано, чтобы определить, должен ли он быть включен.
Например, что-то вроде следующего не будет сериализовать результат getTemplate вообще
@JsonInclude(Include.NON_NULL)
abstract class LinkMixIn {
@JsonIgnore abstract Template getTemplate();
}