Как я могу распознать необъявленные примитивы с помощью Джексона?JAVA

Программисты JAVA общаются здесь
Anonymous
Как я могу распознать необъявленные примитивы с помощью Джексона?

Сообщение Anonymous »

У меня есть следующий класс Джексона:
public class InspectArrayFormulaArgs {

Код: Выделить всё

private final int expectedColumns;

@JsonCreator
public InspectArrayFormulaArgs(@JsonProperty(value = "expectedColumns", defaultValue = "-1") int expectedColumns) {
this.expectedColumns = expectedColumns;
}
}
Я ожидаю, что Джексон проверит, содержит ли проанализированный Json поле ожидаемые столбцы, и:
  • Если поле есть, примите его как есть
  • Иначе используйте значение по умолчанию, которое я объявил
Однако значение, проанализированное Джексоном, по-прежнему равно 0, когда анализируется этот pojo.
Я так и думал может быть связано с тем, что JDK инициализирует int как 0, а Джексон не понимает, что этого поля нет в Json (хотя я думал, что они анализируют Json напрямую).
Поэтому я попытался использовать Integer вместо int в качестве параметра конструктора, но это привело к исключению NullPointerException, потому что Джексон не присваивает значение -1, и поэтому JDK пытается распаковать значение null в поле int ожидаемые столбцы.
Есть идеи, как мне это сделать?< /p>
Примечания:

[*]Я пробовал аннотировать класс с помощью @JsonInclude(JsonInclude.Include.NON_DEFAULT) но это ничего не изменило
[*]Я предполагаю, что могу объявить поле целым числом вместо int, но Джексон все равно оставит его нулевым< /code> (не присваивает -1), и я хотел избежать проверок на своей стороне, таких как value != null ? значение: -1. Конечно, я сделаю это, если нет решения, но мне кажется странным, что Джексон не способен понять, о чем я спрашиваю, поэтому мне интересно, не неправильно ли я спрашиваю


Подробнее здесь: https://stackoverflow.com/questions/790 ... th-jackson

Вернуться в «JAVA»