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

关于这篇文章 ,我有另一个问题 – 如何组合两个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 ) 

查看您的第一个数据对象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){ }); 

使用$.extend

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