2011-01-21 50 views
2

我下面张贴JSON包含春天控制器接收JSON 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 
} 

任何想法,为什么我得到空的列表childListObject?

我的POJO看起来像下面

public class TestList(){ 

    public List<ChildObject> childListObject; 

//get and set 
    } 


    public class ChildObject(){ 

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

回答

5

@ModelAttribute调用Web数据联编程序。它正在寻找普通的post方法参数(例如,param key - “childListObject [0] .testText”参数值“bbb”)来绑定到您的对象上。
要将JSON反序列化为对象,您希望使用@RequestBody来调用序列化程序。

此外,您的JSON似乎不符合obect。你的JSON只是一个没有包装器对象的数组,所以如果你提交了这个请求,方法参数将只是一个List。

0

你有没有配置您的设置XML org.springframework.http.converter.json.MappingJacksonHttpMessageConverter