我在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获取null?
我的pojo看起来如下
public class TestList (){
public List<ChildObject> childListObject;
//get and set
}
public class ChildObject(){
public String testText;
public String testDate;
//get and set
}
答案 0 :(得分:5)
@ModelAttribute
调用Web数据绑定器。它正在寻找普通的post方法参数(例如,param key - “childListObject [0] .testText”param value“bbb”)来绑定到你的对象上。
要将JSON反序列化为对象,您需要使用@RequestBody
来调用序列化程序。
此外,您的JSON似乎与该对象不匹配。你JSON只是一个没有包装器对象的数组,所以如果你把它作为你的请求提交,那么method参数就只是一个List。
答案 1 :(得分:0)
您是否在设置xml中配置了 org.springframework.http.converter.json.MappingJacksonHttpMessageConverter ?