javascript - 使用ajax将数组从javascript传递到spring mvc Controller

标签 javascript jquery arrays ajax spring-mvc

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

这有效:

JS

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

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

Controller

@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 }
        });
    }

Controller

@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 })
    });
}

亲切的问候。

关于javascript - 使用ajax将数组从javascript传递到spring mvc Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45592421/

相关文章:

javascript - 根据导航菜单中的 url 更改下拉选项

javascript - Slick Carousel - 如何更改默认按钮

jquery - Bootstrap-sass gem 无法为下拉菜单加载 js

python - 移动列表的最后一个元素

php - 如何在不显式编写循环运算符的情况下展平一个简单的数组?

javascript - 如何使用 mongoDB 和 Node.js 从集合中获取所有文档

javascript - 显示隐藏子导航

javascript - 当您将窗口调整为任意大小时,如何使缩放框的图像和文本成比例?

javascript - Angular 运行 jquery $(document).ready

javascript - 多次 array.sort 后数组顺序发生变化