将对象列表转换为JSON字符串

时间:2012-03-01 10:02:24

标签: javascript jquery ajax json

更新:这是一个编程错误,请不要发布答案。此问题将被删除。如果您已经发布了答案,请删除

我正在尝试使用jQuery和ajax提交表单。其中一个字段是对象列表,如下所示:

data = [{"id":1},{"id":2}]

我通常使用JSON.stringify(数据),但这次不起作用,服务器获取[object Object],[object Object]

当我做alert(JSON.stringify(data))它有效但有些东西正在将它改回对象。 我正在使用jQuery form plugin并将此数据附加到options对象的data属性:

    function showRequest(formData, jqForm, options) { 
        return true; //does nothing
    }

    var options = {
        beforeSubmit:   showRequest,
        url:    '/search.php',
        iframe: true,
        iframeTarget: '#iframe',
        type: 'post'
    };

    options.data.data = JSON.stringify(data);
    $('#myForm').ajaxSubmit(options);

如何将其转换为可以将其发送到服务器的JSON字符串?

1 个答案:

答案 0 :(得分:0)

这可以使用jQuery并且不使用JSON libray来完成。

在后端使用php的示例

var data = [{"id":1},{"id":2}];
$.ajax({
    type : 'POST',
    url : 'test.php',
    data: {my_array:data},
    success : function(data){
       //alert(data);
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) {
       //alert("error");
    }
});

在php中

$my_array= $_REQUEST['my_array'];
print_r($my_array);

它会打印

Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [id] => 2
        )

)