如何合并两个json并使用Javascript对时间值进行排序

时间:2013-06-15 10:29:24

标签: javascript json

我有2个json,我现在的工作是将两个合并为一个json,并按照json中的时间值排序,json中的值保持原样。我尝试了很多方法,但做不到,你可以帮帮我吗?谢谢。

json 1

  

{“data”:[{“messageString”:“xin chao lqh   1" , “dateSent”: “2013-06-13T02:58:37.0000000-07:00”, “fromUserID”: “4091471”, “username” 的: “沿壁”},{ “messageString”:“新   chao lqh   2" , “dateSent”: “2013-06-13T02:58:54.0000000-07:00”, “fromUserID”: “3569333”, “username” 的: “vuquyet”},{ “messageString”:“新   chao lqh   2" , “dateSent”: “2013-06-13T02:59:05.0000000-07:00”, “fromUserID”: “3878204”, “username” 的: “duongdung”}]}

json 2

  

{“data”:[{“messageString”:“嗨禁令   ?H I”, “toUserID”: “3600311”, “dateSent”: “2013-05-06T21:04:23.0000000-07:00”},{ “messageString”: “是的”, “toUserID”: “4091471” “dateSent”: “2013-06-15T02:16:58.0000000-07:00”},{ “messageString”:“新   超   duongdung13" , “toUserID”: “3844013”, “dateSent”: “2013-06-10T21:54:56.0000000-07:00”},{ “messageString”:“新   chao duongdung13 l?n 2   “ ”toUserID“: ”3844013“, ”dateSent“: ”2013-06-10T21:55:06.0000000-07:00“},{ ”messageString“:” 新   chao duongdung13 l?n   3" , “toUserID”: “3844013”, “dateSent”: “2013-06-10T21:55:19.0000000-07:00”},{ “messageString”:“噢   超   沿壁 “ ”toUserID“: ”4091471“, ”dateSent“: ”2013-06-14T23:31:38.0000000-07:00“},{ ”messageString“:” 沿壁   比特啊啊   ? “ ”toUserID“: ”4091471“, ”dateSent“: ”2013-06-14T23:32:36.0000000-07:00“},{ ”messageString“:” 旺   tôichào   B n的 “ ”toUserID?“: ”3569333“, ”dateSent“: ”2013-06-14T23:42:35.0000000-07:00“},{ ”messageString“:” 圣   v?y b?n   ?”, “toUserID”: “4091471”, “dateSent”: “2013-06-14T23:43:45.0000000-07:00”}]}

2 个答案:

答案 0 :(得分:0)

如果你有jQuery,你可以使用jQuery.extend(json1, json2);更多信息here

答案 1 :(得分:0)

如果尚未解析JSON,则必须解析它们:

json1 = JSON.parse(json1_string);
json2 = JSON.parse(json2_string);

解析JSON后,只需连接数组并对它们进行排序:

array = json1.data.concat(json2.data);
array.sort(function(a, b) {
  if(a.dateSent < b.dateSent) {
    return -1;
  } 
  if(a.dateSent > b.dateSent) {
    return 1;
  } else {
    return 0;
  }
});