Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка десереализации JSON в Spring MVC. Помогите пофиксить. / 2 сообщений из 2, страница 1 из 1
26.10.2016, 11:50
    #39334257
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка десереализации JSON в Spring MVC. Помогите пофиксить.
Имеем POJO класс:
Код: java
1.
2.
3.
4.
5.
6.
public class FooDto {
    private String foo;
    private String bar;
    private List<BazDto> bazList;

// constructor and getter/setter here


Spring-контроллер:
Код: java
1.
2.
3.
4.
    @RequestMapping(value = URL, method = RequestMethod.POST, consumes = "application/json")
    public void processFoo(@RequestBody FooDto fooDto) {
        // code here
    }


В запросе списочная переменная внутри JSON-массива может прийти в двух видах
Как массив.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{  "foo" : "foo", 
    "bar" : "bar", 
    "bazList" : [{
        "baz" : "baz1", 
        "quux": "quux1"
    }, {
        "baz" : "baz2", 
        "quux": "quux2"
    }]
}


Либо как карта. (Особенно этим грешит Nashorn)
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
{  "foo" : "foo", 
    "bar" : "bar", 
    "bazList" : {
        "0" : {
            "baz" : "baz1", 
            "quux": "quux1"
        }, {
        "1" : {
            "baz" : "baz2", 
            "quux": "quux2"
       }
    }
}


Естественно, во втором случае вылетает ошибка

org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
at [Source: java.io.PushbackInputStream@4eef468c; line: 1, column: 252] (through reference chain: ru.company.entity.dto.FooDto["bazList"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
at [Source: java.io.PushbackInputStream@4eef468c; line: 1, column: 252] (through reference chain: ru.company.entity.dto.FooDto["bazList"])

Помогите решить проблему, пожалуйста!
Думаю, может как-то кастомный анмаршаллер состряпать и скормить Джексону? Тогда как? Нуждаюсь в подсказках, примерах.
...
Рейтинг: 0 / 0
26.10.2016, 13:28
    #39334355
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка десереализации JSON в Spring MVC. Помогите пофиксить.
http://stackoverflow.com/questions/19580856/jackson-list-serialization-nested-lists
Кароч, сам нашел, спасибо за внимание! )))
Хотя, если кто предложит более изящное решение вместо данного костыля, буду благодарен.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка десереализации JSON в Spring MVC. Помогите пофиксить. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]