【问题标题】:Jquery: How can I combine two json data objects and post them?Jquery:如何组合两个 json 数据对象并发布它们?
【发布时间】:2011-11-08 19:41:35
【问题描述】:

在这个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){

});

所以我可以在 process.php 中使用 print_r($_POST) 获取这个数组:

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
)

【问题讨论】:

    标签: php json jquery


    【解决方案1】:

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

    【讨论】:

    • 一个 JSON 对象映射到 PHP 中的一个关联数组。
    • 谢谢,但是当我在var data2 中有大量数据时,它不够动态...
    • 这正是@Joseph Silber 写的,他应该获奖
    • @WooDzu - 可能是当我添加替代解决方案时,约瑟夫可能已经提供了解决方案,但是。几乎没有几秒钟的差异。
    【解决方案2】:

    使用$.extend:

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

    【讨论】:

      猜你喜欢
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多