繁体   English   中英

使用Ajax将数组的数组从JavaScript传递到Spring MVC控制器

[英]Pass array of arrays from javascript to spring mvc controller using ajax

所以我在这里描述了一个小问题。 在下面的第一个示例中,我传递了一个有效的简单数组。 如果我想在第二个示例中传递一个数组数组,它​​将不再起作用。 有什么建议么?

这有效:

JS

var myArrayOfStrings = ["x", "y"];

function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfStrings }
        });
    }

调节器

@RequestMapping(value = "/save", method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody
    void Submit(@RequestParam("myArray[]") String[] name) {
        System.out.println(name[0]);
    }

以下解决方案无效,为什么? 我只想传递一个数组而不是“简单数组”。 如何运作?

JS

var myArrayOfArrays = [["x", "y"],["x", "y"]];


function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfArrays }
        });
    }

调节器

@RequestMapping(value = "/save", method = RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody
    void Submit(@RequestParam("myArray[][]") String[][] name) {
        System.out.println(name[0][0]);
    }

我认为在使用AJAX传递嵌套数组之前,应该使用JSON.stringify()序列化嵌套数组。

var myArrayOfArrays = [["x", "y"],["x", "y"]];

function createConsumer(){
    $.ajax({
         type: "POST",
         url: "/save",
         data: JSON.stringify({ myArray: myArrayOfArrays })
    });
}

亲切的问候。

这个解决方案有效

JS

var myArrayOfArrays = [["x", "y"],["x", "y"]];

function createConsumer(){
    $.ajax({
         contentType: "application/json",
         type: "POST",
         url: "/save",
         data: JSON.stringify(myArrayOfArrays)
    });
}

调节器

@RequestMapping(value = "/save", method = RequestMethod.POST)
    public @ResponseBody void Submit(@RequestBody String[][] name) {
        System.out.println(name[0][0]);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM