将JavaScript数组作为JSON值发送?

时间:2010-05-11 21:35:16

标签: javascript ajax json post arrays

如何在我的AJAX请求中将JavaScript数组作为JSON变量发送?

4 个答案:

答案 0 :(得分:19)

这要求您将javascript数组序列化为字符串,这可以使用JSON对象轻松完成。

var myArray = [1, 2, 3];
var myJson = JSON.stringify(myArray); // "[1,2,3]"
....
xhr.send({
    data:{
        param: myJson
    }
});

由于旧版浏览器中不存在JSON对象,因此应包含Douglas Crockfords json2

如果您已经依赖某些包含编码/序列化方法的库,那么您可以使用它。例如。 ExtJs有Ext.encode

答案 1 :(得分:1)

如果你没有使用javascript库(jQuery,prototype.js等),你可以使用example code from json.org

答案 2 :(得分:1)

只需对数组进行编码并将其作为AJAX recuest的一部分发送:

http://www.openjs.com/scripts/data/json_encode.php

有太多其他编码器,甚至是JQuery和Mootools的插件:D

答案 3 :(得分:1)

以下是一个例子:

 var arr = [1, 2, 3];
 $.ajax({
        url: "get.php",
        type: "POST",
        data: {ids:arr},
        dataType: "json",
        async: false,
        success: function(data){
            alert(data);
        }
    });

在get.php中:

echo json_encode($_POST['ids']);

使用{ids:arr}将数组转换为对象,传递对象本身并让jQuery执行查询字符串格式化。