spring controller json收到json List

时间:2011-01-21 16:00:15

标签: java json spring rest jackson

我在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    
}

2 个答案:

答案 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