Highcharts将JSON转换为数据而不会丢失信息

时间:2018-12-10 15:20:55

标签: javascript json highcharts

我得到了具有以下格式的JSON:

[{"date":1508473800525,"total":150,"class1":55,"class2":36},{...},{...}]

我想在此示例中使用它:https://www.highcharts.com/stock/demo/responsive

输入数据采用以下格式:

[[1508473800525,150],[...]]

为了获得相同的输入,我用一个foreach转换了json,然后将其压入这样的数组中

array.push([JSON.parse(elementObject["date"]), JSON.parse(elementObject["total"])])

它可以工作,但是当我在图表中使用它时:

series : [{ data : array }] 

我无法访问class1和class2。

我该怎么办?

2 个答案:

答案 0 :(得分:1)

根据您的代码,您没有将class1class2推送到数组。最好使用Object.keys以确保保留对象中的所有属性。

const responseJson = '[{"date":1508473800525,"total":150,"class1":55,"class2":36},{...},{...}]';

const dataForChart = JSON.parse(responseJson)
.map(obj => {
  const keys = Object.keys(obj);
  return keys.reduce((f, c) => {
    f.push(obj[c]);
    return f;
  }, [])
});

答案 1 :(得分:0)

您应将class1class2属性保存到数据数组中的特定点对象。每个点都是这样的对象:

  {
    x: jsonPoint.date,
    y: jsonPoint.total,
    class1: jsonPoint.class1,
    class2: jsonPoint.class2
  }

该方法允许您访问每个数据点中的class1class2

演示: https://jsfiddle.net/BlackLabel/bfpvo324/1/