JavaScript - 加入两个JSON字符串(嵌套数组)

时间:2014-01-28 21:33:20

标签: javascript json concatenation

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

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”] < / em> ......但还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

类似于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);

答案 1 :(得分:0)

所以这就是我实现我想要的方式......我猜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