2016-07-26 1 views
0

ThingSpeakには優れたグラフがありますが、ThingSpeakからデータを取得し、Google Chartsを使用して独自のグラフを作成したいと思います。私は「created_atと」と「フィールド1」を(抽出する方法を探してかなりの時間を費やしてきたjsonのフィードから時系列を取得する

{ 
    "channel": 
    { 
    "id": 9, 
    "name": "my_house", 
    "description": "Netduino Plus connected to sensors around the house", 
    "latitude": "40.44", 
    "longitude": "-79.996", 
    "field1": "Light", 
    "field2": "Outside Temperature", 
    "created_at": "2010-12-13T20:20:06-05:00", 
    "updated_at": "2014-02-26T12:43:04-05:00", 
    "last_entry_id": 6060625 
    }, 
    "feeds": 
     [ 
      { 
      "created_at": "2014-02-26T12:42:49-05:00", 
      "entry_id": 6060624, 
      "field1": "188", 
      "field2": "25.902335456475583" 
      }, 
      { 
      "created_at": "2014-02-26T12:43:04-05:00", 
      "entry_id": 6060625, 
      "field1": "164", 
      "field2": "25.222929936305732" 
      } 
     ] 
    } 

:ThingSpeakから「フィード」を取得する場合、「フィード」は、このようなJSONオブジェクトがありますおそらく "field2")のデータをテーブル/配列に書き出すことができましたが、私はそれを理解することができませんでした。私はこれらの行に沿って何かを目指しています:

[ 
['created_at',    'field1', 'field2'], 
['2014-02-26T12:42:49-05:00', 188,  25.902335456475583], 
['2014-02-26T12:43:04-05:00', 164,  25.222929936305732] 
] 

これを行うにはどうすればいいですか?

答えて

0

ここで私はそれをやるでしょう。

var j = { 
 
    "channel": 
 
    { 
 
    "id": 9, 
 
    "name": "my_house", 
 
    "description": "Netduino Plus connected to sensors around the house", 
 
    "latitude": "40.44", 
 
    "longitude": "-79.996", 
 
    "field1": "Light", 
 
    "field2": "Outside Temperature", 
 
    "created_at": "2010-12-13T20:20:06-05:00", 
 
    "updated_at": "2014-02-26T12:43:04-05:00", 
 
    "last_entry_id": 6060625 
 
    }, 
 
    "feeds": 
 
     [ 
 
      { 
 
      "created_at": "2014-02-26T12:42:49-05:00", 
 
      "entry_id": 6060624, 
 
      "field1": "188", 
 
      "field2": "25.902335456475583" 
 
      }, 
 
      { 
 
      "created_at": "2014-02-26T12:43:04-05:00", 
 
      "entry_id": 6060625, 
 
      "field1": "164", 
 
      "field2": "25.222929936305732" 
 
      } 
 
     ] 
 
    } 
 

 
var results = []; 
 
var feeds = j.feeds; 
 

 
var headers = []; 
 
for (var key in feeds[0]) { 
 
    headers.push(key); 
 
} 
 
results.push(headers); 
 

 
for (var x = 0; x < feeds.length; x++) { 
 
    var row = []; 
 
    var feed = feeds[x]; 
 
    for (var y = 0; y < headers.length; y++) { 
 
     var header = headers[y]; 
 
     row.push(feed[header]); 
 
    } 
 
    results.push(row); 
 
} 
 

 
console.log(results);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

(注: How to iterate through property names of Javascript object?:私は、ヘッダーを取得する方法を決定するために、ここからのコードを使用しました)
関連する問題