首页 > 解决方案 > Highcharts 将 JSON 转换为数据而不会丢失信息

问题描述

我得到了一个这种格式的 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。

我怎样才能以另一种方式做到这一点?

标签: javascriptjsonhighcharts

解决方案


从您的代码中,您不会将其推class1送到class2数组。您最好使用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;
  }, [])
});

推荐阅读