简体   繁体   English

处理要在Highcharts中使用的JSON数据

[英]Processing JSON data to use in Highcharts

I want to make charts from an external source of data using highcharts. 我想使用highcharts从外部数据源制作图表。 The problem that I encountered is that I have incompatible data: 我遇到的问题是我的数据不兼容:

{
"channel":{
"id":1123376,
"name":"Global Weather Experiment Raspberry Pi",
"latitude":"0.0",
"longitude":"0.0",

"field1":"Temperature",
"field2":"Presurre",
"field3":"Humidity",
"field4":"Air Quality",
"field5":"Rain",
"field6":"Wind Speed",
"field7":"Wind Direction",
"field8":"Wind Power",

"created_at":"2016-10-22T11:37:27Z",
"updated_at":"2017-06-11T10:01:02Z",
"last_entry_id":5438},

"feeds":[
    {
    "created_at":"2017-06-11T09:01:02Z",
    "entry_id":5437,
    "field1":"23.13"
    },
    {
    "created_at":"2017-06-11T10:01:02Z",
    "entry_id":5438,
    "field1":"23.88"
    }
]}

I need to convert "created_at" and "field1" to make it look like this: 我需要转换“ created_at”和“ field1”使其看起来像这样:

?([
    [Date.UTC(2017,6,11,09,01,02Z),23.13],
    [Date.UTC(2017,6,11,10,01,02Z),23.88]
]);

Of corse there are more entries, I need help with creating loop which can convert it, especially date. 当然,还有更多条目,我需要创建循环的帮助,可以将其转换,尤其是日期。

 var data={ "channel":{ "id":1123376, "name":"Global Weather Experiment Raspberry Pi", "latitude":"0.0", "longitude":"0.0", "field1":"Temperature", "field2":"Presurre", "field3":"Humidity", "field4":"Air Quality", "field5":"Rain", "field6":"Wind Speed", "field7":"Wind Direction", "field8":"Wind Power", "created_at":"2016-10-22T11:37:27Z", "updated_at":"2017-06-11T10:01:02Z", "last_entry_id":5438}, "feeds":[ { "created_at":"2017-06-11T09:01:02Z", "entry_id":5437, "field1":"23.13" }, { "created_at":"2017-06-11T10:01:02Z", "entry_id":5438, "field1":"23.88" } ]} //console.log(data.feeds) var rqData=data.feeds; var formattedData=[] for(var i=0;i<rqData.length;i++){ //formattedData array contains (fist data) date in milliseconds and (second data) in number formattedData.push([Date.parse(rqData[i].created_at),Number(rqData[i].field1)]) } //console.log(formattedData) Highcharts.chart('container', { chart: { type: 'spline' }, title: { text: 'Snow depth at Vikjafjellet, Norway' }, subtitle: { text: 'Irregular time data in Highcharts JS' }, xAxis: { type: 'datetime', dateTimeLabelFormats: { // don't display the dummy year month: '%e. %b', year: '%b' }, title: { text: 'Date' } }, yAxis: { title: { text: 'Snow depth (m)' }, min: 0 }, tooltip: { headerFormat: '<b>{series.name}</b><br>', pointFormat: '{point.x:%e. %b}: {point.y:.2f} m' }, plotOptions: { spline: { marker: { enabled: true } } }, series: [{ name: 'Some Year', // Define the data points. All series have a dummy year // of 1970/71 in order to be compared on the same x axis. Note // that in JavaScript, months start at 0 for January, 1 for February etc. data: formattedData }] }); 
 <script src="https://code.highcharts.com/highcharts.js"></script> <script src="https://code.highcharts.com/modules/exporting.js"></script> <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div> 

Pass formattedData in highcharts as 在highcharts中将formattedData传递为

series: [{
    name: 'Some Year'
    data: formattedData
}]

and also xAxis contains type: 'datetime', 并且xAxis包含type: 'datetime',

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM