使用ajax将数组数组从javascript传递到spring mvc控制器

使用ajax将数组数组从javascript传递到spring mvc控制器,javascript,jquery,arrays,ajax,spring-mvc,Javascript,Jquery,Arrays,Ajax,Spring Mvc,所以我这里有一个小问题。在下面的第一个示例中,我将传递一个正在工作的简单数组。如果我想在第二个例子中传递一个数组,它就不再工作了。有什么建议吗 这项工作: JS var myArrayOfStrings = ["x", "y"]; function createConsumer(){ $.ajax({ type: "POST", url: "/save", data: { myArray: myArr

所以我这里有一个小问题。在下面的第一个示例中,我将传递一个正在工作的简单数组。如果我想在第二个例子中传递一个数组,它就不再工作了。有什么建议吗

这项工作:

JS

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

function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfStrings }
        });
    }
var myArrayOfArrays = [["x", "y"],["x", "y"]];


function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfArrays }
        });
    }
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,produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody
    void Submit(@RequestParam("myArray[]") String[] name) {
        System.out.println(name[0]);
    }
@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]);
    }
@RequestMapping(value = "/save", method = RequestMethod.POST)
    public @ResponseBody void Submit(@RequestBody String[][] name) {
        System.out.println(name[0][0]);
    }
以下解决方案不起作用,为什么?我只想传递数组的数组,而不是“简单数组”。它将如何工作

JS

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

function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfStrings }
        });
    }
var myArrayOfArrays = [["x", "y"],["x", "y"]];


function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfArrays }
        });
    }
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,produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody
    void Submit(@RequestParam("myArray[]") String[] name) {
        System.out.println(name[0]);
    }
@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]);
    }
@RequestMapping(value = "/save", method = RequestMethod.POST)
    public @ResponseBody void Submit(@RequestBody 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 myArrayOfStrings = ["x", "y"];

function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfStrings }
        });
    }
var myArrayOfArrays = [["x", "y"],["x", "y"]];


function createConsumer(){
        $.ajax({
             type: "POST",
             url: "/save",
             data: { myArray: myArrayOfArrays }
        });
    }
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,produces = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody
    void Submit(@RequestParam("myArray[]") String[] name) {
        System.out.println(name[0]);
    }
@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]);
    }
@RequestMapping(value = "/save", method = RequestMethod.POST)
    public @ResponseBody void Submit(@RequestBody String[][] name) {
        System.out.println(name[0][0]);
    }

如何更改控制器?@RequestParam(“myArray”)字符串名称