Jquery:我如何组合两个json数据对象并发布它们?

时间:2011-09-01 23:36:32

标签: php json jquery

关于这个post,我有另一个问题 - 如何组合两个json数据对象?

第一个json对象,

{"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php2C2E.tmp","error":0,"size":469159}}

第二个json对象,

{"title":"title","content":"bla bla blah"}



$.post("process.php", first + second ,function(xml){

});

所以我可以使用print_r($_POST)

在process.php中获取此数组
Array
(

[file] => Array
        (
            [name] => 1024x768.jpg
            [type] => image/jpeg
            [tmp_name] => C:\wamp\tmp\phpA1.tmp
            [error] => 0
            [size] => 469159
        )

    [title] => title
    [content] => bla bla blah
)

2 个答案:

答案 0 :(得分:2)

查看您的第一个数据对象file不是一个数组,因为您希望它在服务器端php代码中。它是JSON对象。无论如何,你可以尝试这个来组合数据对象并发布它。

var data1 = {"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php2C2E.tmp","error":0,"size":469159}};
var data2 = {"title":"title","content":"bla bla blah"}

var data = data1;
data.title = data2.title;
data.content = data2.content;

$.post("process.php", data ,function(xml){

});

或者,您可以使用jQuery.extend方法将两个或多个对象的内容合并到第一个对象中。

var data1 = {"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php2C2E.tmp","error":0,"size":469159}};
var data2 = {"title":"title","content":"bla bla blah"}

$.post("process.php", $.extend({}, data1, data2) ,function(xml){

});

答案 1 :(得分:2)

使用$.extend

$.post("process.php", $.extend(true, first, second) ,function(xml){

});