Spring控制器中json数组奇怪的反序列化

时间:2012-05-14 15:12:44

标签: jquery ajax json spring serialization

我正在使用带有带注释的控制器方法的Spring 3.1.1,如下所示:

@RequestMapping(value = "/my/url", method = RequestMethod.POST)
public @ResponseBody Response<SomeModel>
doStuff(HttpServletRequest request, @RequestParam List<String> ids)

我用jQuery发布到这个:

$.post('/my/url', 
            {ids: JSON.stringify($ids.get())},
            function(response) {
                alert(response);
            }, 'json');

如果我查看来自浏览器的流量,似乎没问题:

ids:["770409362","771999003","775080915","775119397","775831772"]

但是我得到的Java List<String>在第一个和最后一个元素中添加了额外的[和]:

[["770409362", "771999003", "775080915", "775119397", "775831772"]]

并且还有引号。

我不知道如何摆脱它。任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:1)

发布后的秒数找到了join()方法:

http://www.w3schools.com/jsref/jsref_join.asp

所以我做了

{ids: $ids.get().join()}

给了我

ids:133753573,1198385893,1513233125,12117275
相反,哪个工作。然而,这似乎不是正确的方法。真的想要一些最佳实践Spring / jQuery方法......?

答案 1 :(得分:0)

尝试在服务器端使用@RequestBody List<String> ids代替@RequestParam List<String> ids