繁体   English   中英

使用javascript访问和排序json中的数组对象

[英]accessing and sorting array objects in json using javascript

我在玩javascript中的json对象,想看看是否有人可以帮助我解决问题

我的json文件包含一个哈希对象列表,该哈希对象包含一个键(id),其值是[ipaddress,timestamp,url]的数组

例如

{"output":
    {
    "1":["10.0.0.1","2012-07-11T11:41:42+01:00","http://myurl.com"],
    "2":["10.0.0.1","2012-07-11T11:45:42+01:00","http://myurl2.com"],
    "3":["192.168.1.1","2012-07-11T11:41:47+01:00","http://myurl3.com"]
    }
}

我想做的是能够对数组的内容进行排序

例如,我想遍历json并为每个IP地址提取最高的时间戳

因此,上述json的示例输出如下所示:-

10.0.0.1 - http://myurl2.com
192.168.1.1 - http://myurl3.com

目前,我有一个简单的函数可以将原始数据输出到div中,但是我确定我可以更好地处理数组

  var displayOutput = function(data){
    var container = $("#fragment-1");
   var body = “”;
    $.each(data.output, function(key, val) {
      var arr = val.toString().split(",");
      body = body + arr[0]+ ' - ' +  arr[1]) + ' - ' +  arr[2]
    });
    container.html(body);                                                
  };

您将需要将JSON arent格式更改为易于排序。

也许是多维数组?

也许这可能有所帮助: 对JavaScript对象数组进行排序

或这样: http : //www.devcurry.com/2010/05/sorting-json-array.html

或这样: 在Javascript中对JSON对象进行排序

其中之一肯定会导致一个好的解决方案。 需要任何帮助,问:)

您可以使用underscore.js库。 例如,您可以使用以下方法对集合进行排序:

_.sortBy(yourData.output, function (elem) {
    return new Date(elem[1]).getTime() - new Date().getTime();
});

当然,您需要首先将JSON解析为JavaScript对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM