пружинный контроллер JSON получает JSON список - PullRequest
2 голосов
/ 21 января 2011

Я публикую пост ниже. Json содержит

{"testListObject":[{"testText":"bbb","testDate":"02.01.2011 00:00:00.000"},{"testText":"aaa","testDate":"01.01.2011 00:00:00.000"}]}

в моем контроллере пружины. У меня есть

@RequestMapping(value = "/post/tester/", method = RequestMethod.POST)
 public @ResponseBody String postItinerary(@ModelAttribute("testListObject") TestList testList) throws IOException {


    System.out.println("1="+testList); //ok
    System.out.println("2="+testList.childListObject); //print null
}

Есть идеи, почему я получаю нулевое значение для List childListObject?

myПойо выглядит как ниже

    public class TestList (){

    public List<ChildObject> childListObject;

//get and set
    }


    public class ChildObject(){

    public String testText;
    public String testDate;
//get and set    
}

Ответы [ 2 ]

5 голосов
/ 21 января 2011

@ModelAttribute вызывает привязку веб-данных. Он ищет обычные параметры метода post (например, ключ параметра - "childListObject [0] .testText" значение параметра "bbb") для привязки к вашему объекту. Для десериализации JSON в объект вы хотите использовать @RequestBody для вызова сериализатора.

Кроме того, ваш JSON не соответствует объекту. Ваш JSON - это просто массив без объекта-оболочки, поэтому, если вы отправите его в качестве запроса, параметром метода будет просто List.

0 голосов
/ 21 января 2011

Вы настроили org.springframework.http.converter.json.MappingJacksonHttpMessageConverter в настройках xml?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...