ObjectMapper генерирует исключение JsonMappingException при попытке создать экземпляр с нулевым полем - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь сериализовать объект в json String, что бы иметь нулевые поля. Когда все поля инициализируются - все работает хорошо, но когда я установил значение поля null, я получил исключение:

com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException).

Мой код:

public String toJsonString(T t) throws JsonProcessingException{
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
    String dtoAsString = objectMapper.writeValueAsString(t); //string where I got the exception
    return dtoAsString;
}

Объект:

SomeObject{
    @JsonSerialize(using = LocalDateSerializer.class)
    LocalDate date = LocalDate.now();
    Long value = null;
}

PS:

Проблема в том, что я не могу автоматически проанализировать someObject в json, поскольку я получил еще одно исключение - мне нужно проанализировать date в специальный формат строки. Поэтому мне нужно использовать именно мой путь - objectMapper (Gson (). ToString неправильно сериализовал мое LocalDate значение).

1 Ответ

0 голосов
/ 02 ноября 2019

Я нашел решение:

Произошла ошибка, так как одно из полей не было инициализировано, поэтому ObjectMapper исключение исключено.

Просто добавьте @JsonInclude(JsonInclude.Include.NON_NULL) к вашему классу POJO:

@JsonInclude(JsonInclude.Include.NON_NULL)

SomeObject{
    String date = "11.01.19";
    Long value = null;
}

в результате мы получим json без обнуляемого поля:

{
    "date" : "11.09.19"
}
...