【问题标题】:Getting a time series from a json "feed"从 json“提要”获取时间序列
【发布时间】:2016-11-30 08:30:09
【问题描述】:

虽然 ThingSpeak 有出色的图表,但我想从 ThingSpeak 获取数据并使用 Google Charts 制作自己的图表。从 ThingSpeak 获取“提要”时,“提要”是一个 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"
          }
      ]
  }

我花了相当长的时间寻找将“created_at”和“field1”(可能还有“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]
]

我该怎么做?

【问题讨论】:

    标签: javascript arrays json


    【解决方案1】:

    我会这样做。 (注意:我使用此处的代码来确定如何获取标题:How to iterate through property names of Javascript object?

    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);
    &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-03
      • 2012-08-30
      • 2023-01-27
      • 2021-06-16
      • 2017-06-25
      • 1970-01-01
      • 2020-01-31
      • 1970-01-01
      相关资源
      最近更新 更多