添加到JavaScript/jQuery中的JSON数组
我从不同的源中提取数据,每个源返回某种形式的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="
[
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更快、更简洁地解决我的问题。简明扼要!