0

私は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);                                                
  };
4

2 に答える 2

0

JSON は並べ替えが容易ではないため、形式を変更する必要があります。

もしかして多次元配列?

多分これが役立つかもしれません: JavaScript オブジェクトの配列の並べ替え

またはこれ: http://www.devcurry.com/2010/05/sorting-json-array.html

またはこれ:JavascriptでJSONオブジェクトをソートする

これらのいずれかが確実に良い解決策につながります。助けが必要です:)

于 2012-07-25T13:45:40.253 に答える
0

underscore.js ライブラリを使用できます。たとえば、次のようにコレクションを並べ替えることができます。

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

もちろん、最初に JSON を JavaScript オブジェクトに解析する必要があります。

于 2012-07-25T13:54:08.873 に答える