Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加到JavaScript/jQuery中的JSON数组_Javascript_Jquery_Json - Fatal编程技术网

添加到JavaScript/jQuery中的JSON数组

添加到JavaScript/jQuery中的JSON数组,javascript,jquery,json,Javascript,Jquery,Json,我从不同的源中提取数据,每个源返回某种形式的JSON或类似内容,尽管每次的格式不同。我需要把它们都放到一个数组中,但我不知道怎么做 第一组是如下所示的数组: [ Object {id="70", type="ab", dateadded="12345678"}, Object {id="85", type="ab", dateadded="87654321"}, ... more items ... ] [ Object {id="12341234234", created_time="

我从不同的源中提取数据,每个源返回某种形式的JSON或类似内容,尽管每次的格式不同。我需要把它们都放到一个数组中,但我不知道怎么做

第一组是如下所示的数组:

[
 Object {id="70", type="ab", dateadded="12345678"},
 Object {id="85", type="ab", dateadded="87654321"}, ... more items ...
]
[
 Object {id="12341234234", created_time="12345678"},
 Object {id="567856785678", created_time="87654321"}, ... more items ...
]
第二组是从Facebook中提取的,如下所示:

[
 Object {id="70", type="ab", dateadded="12345678"},
 Object {id="85", type="ab", dateadded="87654321"}, ... more items ...
]
[
 Object {id="12341234234", created_time="12345678"},
 Object {id="567856785678", created_time="87654321"}, ... more items ...
]
因此,我需要修改第二个集合,使其具有“type”,并具有“dateadded”而不是“created_time”,然后我需要将所有这些都放入一个数组中,以便可以在“dateadded”上排序

如何执行此操作?

使用第一个数组的push()方法:

希望这有帮助。

使用第一个数组的push()方法:


希望这能有所帮助。

假设您使用的是实际有效的JSON,而不是上面引用的内容:

var jsonOld = '[{"id":"70","type":"ab","dateadded":"12345678"},{"id":"85","type":"ab","dateadded":"87654321"}]',
    jsonNew = '[{"id":"12341234234","created_time":"12345678"},{"id":"567856785678","created_time":"87654321"}]';
然后首先将这些值解析为实际的Javascript数组:

var mainArr = JSON.parse(jsonOld),
    newArr = JSON.parse(jsonNew);
(如果已经有实际的Javascript数组而不是JSON字符串,则跳过上述步骤。)

然后只需迭代
newArr
并更改需要更改的属性:

for (var i = 0, il = newArr.length; i < il; i++) {
    newArr[i].type = 'ab';
    newArr[i].dateadded = newArr[i].created_time;
    delete newArr[i].created_time;
}
并按日期排序添加:

mainArr.sort(function(a, b) { return a.dateadded - b.dateadded; });
这将导致:

[{"id":"70","type":"ab","dateadded":"12345678"},
 {"id":"12341234234","type":"ab","dateadded":"12345678"},
 {"id":"85","type":"ab","dateadded":"87654321"},
 {"id":"567856785678","type":"ab","dateadded":"87654321"}]

假设您使用的是实际有效的JSON,而不是上面引用的内容:

var jsonOld = '[{"id":"70","type":"ab","dateadded":"12345678"},{"id":"85","type":"ab","dateadded":"87654321"}]',
    jsonNew = '[{"id":"12341234234","created_time":"12345678"},{"id":"567856785678","created_time":"87654321"}]';
然后首先将这些值解析为实际的Javascript数组:

var mainArr = JSON.parse(jsonOld),
    newArr = JSON.parse(jsonNew);
(如果已经有实际的Javascript数组而不是JSON字符串,则跳过上述步骤。)

然后只需迭代
newArr
并更改需要更改的属性:

for (var i = 0, il = newArr.length; i < il; i++) {
    newArr[i].type = 'ab';
    newArr[i].dateadded = newArr[i].created_time;
    delete newArr[i].created_time;
}
并按日期排序添加:

mainArr.sort(function(a, b) { return a.dateadded - b.dateadded; });
这将导致:

[{"id":"70","type":"ab","dateadded":"12345678"},
 {"id":"12341234234","type":"ab","dateadded":"12345678"},
 {"id":"85","type":"ab","dateadded":"87654321"},
 {"id":"567856785678","type":"ab","dateadded":"87654321"}]

这不是有效的JSON字符串,是吗?这不是有效的JSON字符串,是吗?谢谢!是的,我弄坏了上面的内容,但是数据是以您描述的形式存在的,所以这应该可以工作。再次感谢,谢谢!是的,我弄坏了上面的内容,但是数据是以您描述的形式存在的,所以这应该可以工作。再次感谢。+1更快、更简洁地解决我的问题。简明扼要+1更快、更简洁地解决我的问题。简明扼要!