【问题标题】:JavaScript - Join two JSON strings (nested array)JavaScript - 连接两个 JSON 字符串(嵌套数组)
【发布时间】:2014-01-28 21:33:19
【问题描述】:

我有两个动态构造的 JSON 字符串。 第一个是从 XML 文档创建的:

if (window.DOMParser) {
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(xml_string, "text/xml");
    } else// Internet Explorer
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(xml_string);
    }
var json_str = xml2json(xmlDoc,"")

另一个是根据用户输入当场创建的。

两者具有相同的结构。第一个是:

{"Movies": { "Movie": [{"Title":"Movie1","Year":"2013"}]}};

第二个是:

{"Movies": { "Movie": [{"Title":"Movie2","Year":"2014"}]}};

如何将这两者连接起来,结果是“电影”中的两个“电影”:结果应该是:

{"Movies": { "Movie": [{"Title":"Movie1","Year":"2013"},{"Title":"Movie2","Year":"2014"}]}};

我知道一种方法是将 {"Title":"Movie2","Year":"2014"} 推入 ["Movies"]["Movie"] ...但是还有其他方法吗?

【问题讨论】:

标签: javascript json concatenation


【解决方案1】:

类似于concat 方法?

var a = {"Movies": { "Movie": [{"Title":"Movie1","Year":"2013"}]}};
var b = {"Movies": { "Movie": [{"Title":"Movie2","Year":"2014"}]}};

var c = {"Movies": { "Movie": a.Movies.Movie.concat(b.Movies.Movie) }};
console.log(c);

【讨论】:

【解决方案2】:

所以这就是我实现我想要的方式......我猜 concat 方法也可以工作:

json_obj = JSON.parse(sessionStorage.getItem('object')); //->Creating JSON object from string format

var new_item = {"Vendor":'GUY', "Title": '...', "Year":'...'};

json_obj["Movies"]["Movie"].push(new_item);

JSON.stringify(json_obj) //-> String format

【讨论】:

    猜你喜欢
    • 2012-10-05
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多