javascript - 如何使用 JSON 将劳工统计局数据导入 Highcharts?

标签 javascript jquery json highcharts

Highcharts 有一些关于如何将 JSON 文件合并到图表中的很好的示例,但它们的示例是 pretty simple JSON files

这就是我想做的。

以 JSFiddle ( http://jsfiddle.net/xhz7oujw/ ) 为例:

HTML:

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>

JavaScript:

$(function () {
$('#container').highcharts({
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    series: [{           
        data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
    }]
});

并将数据替换为 BLS 中的此文件 ( http://api.bls.gov/publicAPI/v2/timeseries/data/LASST410000000000003 ):

{
  "status": "REQUEST_SUCCEEDED",
  "responseTime": 16,
  "message": [

  ],
  "Results": [
{
  "series": [
    {
      "seriesID": "LAUCN040010000000005",
      "data": [
        {
          "year": "2013",
          "period": "M11",
          "periodName": "November",
          "value": "16393",
          "footnotes": [
            {
              "code": "P",
              "text": "Preliminary."
            }
          ]
        },
        {
          "year": "2013",
          "period": "M10",
          "periodName": "October",
          "value": "16536",
          "footnotes": [
            {
             ...
             }
          ]
        }
      ]
    }
  ]
}

我只想将 y 轴数据替换为“年份”和“期间”,并将值替换为“值”。我的问题是我不知道如何以良好的格式获取这些内容,例如 something like this .

最佳答案

function parseData(json) {
    series = json.Results[0].series[0];
    var newData = [], m, d;
    for (var i=0; i < series.length; i++) {
        m = series[i].periodName.substr(1); // strip out the letter "M" from the periodName
        d = new Date(series[i].year, m, 1);
        newData.push({d, series[i].value);
    }
     return newData;
}

这将循环遍历 JSON 并提取 periodName(忽略字母“M”)以获取月份和年份。它将把它们组合成一个日期(d 变量)。然后,它将将此日期及其关联值推送到函数返回的 newData 数组中。

要使用它,只需调用seriesData = parseData(rawJSON),其中rawJSON是您在此处指向的源数据文件的内容:http://api.bls.gov/publicAPI/v2/timeseries/data/LASST410000000000003

然后只需在 HighCharts 设置中使用 seriesData 即可。

关于javascript - 如何使用 JSON 将劳工统计局数据导入 Highcharts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39006902/

相关文章:

javascript - 阻止 JS 脚本从另一个脚本执行

javascript - 从网站提交另一个网站提交按钮

javascript - 触摸屏上的“车轮”事件

python - Python中是否没有通用的对象序列化方法(转为json)?

symfony - 内容长度: 0 in a json response Symfony2

javascript - jQuery 如何让 $(this) 选择器触发多个类

javascript - 是否可以(并推荐)使用 Javascript 来执行服务器端脚本?

Javascript 显示对象中子值的日期

javascript - 我在 Javascript 中的 askQuestion() 函数总是将答案标记为错误

python - 为什么 Django 将 postgres JSONField 值作为字符串返回?