0

このようなJSON応答があります

[
    {
        "alias": "Server1", 
        "hostgroup_worst_service_state": "0", 
        "status_history": {
            "status": [
                "0", 
                "2", 
                "0", 
                "0"
            ]
        }
    }, 
    {
        "alias": "Server2", 
        "hostgroup_worst_service_state": "0", 
        "status_history": {
            "status": [
                "0", 
                "0", 
                "0", 
                "0"
            ]
        }
    }, 
    {
        "alias": "Server3", 
        "hostgroup_worst_service_state": "0", 
        "status_history": {
            "status": [
                "1", 
                "1", 
                "1", 
                "0"
            ]
        }
    }
]

.eachイテレータ関数を使用して、エイリアスとhostgroup_worst_stateに簡単にアクセスできます。

 $.each(data, function(i, item) {
   console.log(item.alias)
   console.log(item.hostgroup_worst_service_state)
}

しかし、私はステータスデータにアクセスするのに苦労しています。私はそれらをこのように表示する必要があります:

["0","2","0","0"]
["0","0","0","0"]
["1","1","1","1"]

これらの値は次に、jQuerySparklinesを使用してグラフを表示するために使用されます。

ご協力いただきありがとうございます、

4

3 に答える 3

3

オブジェクトの配列があり、各オブジェクトには というプロパティがあり、必要な配列を含むstatus_historyというプロパティを持つ別のオブジェクトを指しています。statusしたがって、この配列にアクセスするには、次を使用します。

$.each(data, function () { 
  console.log(this.status_history.status); 
});

thisinside.each()は、反復するオブジェクト/値を参照することに注意してください。これは、次を使用するのと同じです。

$.each(data, function (i, item) { 
  console.log(item.status_history.status); 
});

また、特定のステータス データを含む配列の配列が必要な場合は、次のように使用できます$.map()

var arr = $.map(data, function (el) { 
  return [ el.status_history.status ];
});
于 2012-09-11T14:12:07.830 に答える
1

結果には必要な配列が含まれます。

var result = [];

for(var i = 0; i < data.length; i++) {
    result.push(data[i].status_history.status);
}
于 2012-09-11T14:15:21.070 に答える
0

あなたのデータを要素に持って行き、データを言う

for(i=0;i<data.length;i++)
{
 console.log(data.status_history.status);
}
于 2012-09-11T14:16:12.613 に答える