1

複雑な JSON 構造を解析したいのですが、単純な JSON ではないため苦労しています。サンプルは次のとおりです。

[
   {
      "target":"collectd.matrix.oracle.avg_resp_time",
      "datapoints":[
         [8.0, 1365158480],
         [null, 1365158490],
         [null, 1365158500],
         [null, 1365158510],
         [null, 1365158520],
         [null, 1365158530],
         [8.0, 1365158540],
         [null, 1365158550],
         [null, 1365158560],
         [null, 1365158570],
         [null, 1365158580],
         [null, 1365158590],
         [8.0, 1365158600],
         [null, 1365158610],
         [null, 1365158620],
         [null, 1365158630],
         [null, 1365158640],
         [null, 1365158650],
         [8.0, 1365158660],
         [null, 1365158670],
         [null, 1365158680],
         [null, 1365158690],
         [null, 1365158700],
         [null, 1365158710],
         [null, 1365158720],
         [null, 1365158730],
         [null, 1365158740],
         [null, 1365158750],
         [null, 1365158760],
         [null, 1365158770]
      ]
   }
]

各フィールドの値をキャプチャしたいので、eg:X=8.0,Y=1365158540これを解析するためのヘルプまたはロジックが必要です。

ありがとう、ソーハン

4

3 に答える 3

2

ネイティブJSON.parse()は問題なく動作するはずです。古いブラウザーでの下位互換性のためにjson2.jsを使用します。次に例を示します。

var data = JSON.parse(yourJsonGoesHere),
    datapoints = data[0].datapoints,
    i;

for (i = 0; i < datapoints.length; ++i) {
    console.log('x:' + datapoints[i][0] + ', y:' + datapoints[i][1]);
}
于 2013-04-05T11:01:26.193 に答える
2
var jsonData = JSON.parse(data)

どこ

data = '[{"target": "collectd.matrix.oracle.avg_resp_time", "datapoints": [[8.0, 1365158480], [null, 1365158490], [null, 1365158500], [null, 1365158510], [null, 1365158520], [null, 1365158530], [8.0, 1365158540], [null, 1365158550], [null, 1365158560], [null, 1365158570], [null, 1365158580], [null, 1365158590], [8.0, 1365158600], [null, 1365158610], [null, 1365158620], [null, 1365158630], [null, 1365158640], [null, 1365158650], [8.0, 1365158660], [null, 1365158670], [null, 1365158680], [null, 1365158690], [null, 1365158700], [null, 1365158710], [null, 1365158720], [null, 1365158730], [null, 1365158740], [null, 1365158750], [null, 1365158760], [null, 1365158770]]}]';

jsonData[0]['datapoints']すべてのデータポイントの配列です

JSON.parse のリファレンス

于 2013-04-05T11:04:06.137 に答える
1

datatype:jsonajax経由で応答を取得している場合は、ajax呼び出しを追加するだけです

また

http://api.jquery.com/jQuery.parseJSON/を使用できます

var obj = jQuery.parseJSON(jsonString)
于 2013-04-05T11:02:05.713 に答える