Как избежать десериализации пустых элементов JSON Array из JSON String при использовании Джексона - PullRequest
0 голосов
/ 04 марта 2019

Я использую библиотеку Jackson 2 и пытаюсь десерилизовать ответ JSON, который выглядит следующим образом:

{
    "employee": [
    {},
    {
        "Details": [
            {
                "Name": "value",
                "Lastname": "value"
            }
        ]
    }
]}

По некоторым причинам в моем массиве сотрудников есть пустой элемент.Можно ли отказаться от этого элемента и избежать его десериализации в процессе десериализации?В настоящее время мой код десериализует пустого сотрудника как класс POJO Employee с пустыми полями.

Мой код выглядит следующим образом:

ObjectMapper mapper = new ObjectMapper();
Empoyee[] array = mapper.readValue(json, Empoyee[].class);

PS.Я не могу коснуться ответа JSON.Это то, что есть ...

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Надеюсь, это поможет вам.

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
mapper.setSerializationInclusion(Include.NON_EMPTY); 

Или

ObjectMapper mapper = new ObjectMapper ().configure(
        DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).setSerializationInclusion(
                JsonInclude.Include.NON_NULL);
0 голосов
/ 05 марта 2019

Вам необходимо написать собственный десериализатор или отфильтровать empty объекты после процесса десериализации.Второй подход звучит намного проще, потому что кроме пользовательского десериализатора для bean-компонентов вам необходимо расширить уже реализованный десериализатор для массивов (com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer) и отфильтровать null или empty bean-компонентов.

См. Также:

0 голосов
/ 04 марта 2019

Сначала убедитесь, что у вас есть сеттеры, геттеры и конструкторы, после этого вы можете использовать следующее:

Employee employee = mapper.readValue(yourJson, Employee.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...