Насколько я понимаю, Джексон
сериализует переменную общего экземпляра с именем переменной
public List<String> myStrings = new ArrayList<>();
сериализует в
{ 'myStrings' : [ ... ] }
сериализует переменную частного экземпляра в имя переменной, если у нее есть открытый метод получения с именем getVariable()
:
private List<String> myStrings = new ArrayList<>();
public List<String> getMyStrings() { return myStrings; }
сериализует аналогично
{ 'myStrings' : [ ... ] }
Однако я пытаюсь добиться сериализации в строку (вместо массива строк)по другому методу, но сохраняйте ключ JSON (в некоторых случаях @JsonInclude(JsonInclude.Include.NON_NULL)
подавляет оригинальный метод доступа
@JsonInclude(JsonInclude.Include.NON_NULL)
private boolean firstStringOnly = true;
private List<String> myStrings = new ArrayList<>();
public List<String> getMyStrings() { return firstStringOnly ? null: myStrings; }
public String getFirstString() { return firstStringOnly ? myStrings.get(0) : null; }
Требуемая сериализация JSON:
Isэто возможно сделать? Я специально стараюсь не использовать пользовательские сериализаторы и делать это только с помощью аннотаций.nd Java 8.
Просто повторяем, ограничения вопроса:
* НЕТ пользовательского сериализатора
* В обоих случаях использования один и тот же ключ JSON