如何重塑现有的 JSON 以适应 Highcharts

Posted

技术标签:

【中文标题】如何重塑现有的 JSON 以适应 Highcharts【英文标题】:How do I reshape my existing JSON to fit Highcharts 【发布时间】:2018-06-17 15:46:39 【问题描述】:

我是 JS 新手,无法将我的数据提供给 Highcharts 进行可视化。

假设我有以下 JSON 数据

  
   "is_error":0,
   "keys":[  
      "count",
      "created_date",
      "source",
      "gender_id",
      "type"
   ],
   "error":"",
   "values":[  
        
         "count":3,
         "created_date":"2017-08-09",
         "source":"",
         "gender_id":"",
         "type":"Organization"
      ,
        
         "count":1,
         "created_date":"2017-08-10",
         "source":"",
         "gender_id":"",
         "type":"Organization"
      ,
        
         "count":2,
         "created_date":"2017-08-09",
         "source":"",
         "gender_id":1,
         "type":"Individual"
      ,
        
         "count":1,
         "created_date":"2017-08-12",
         "source":"",
         "gender_id":1,
         "type":"Individual"
      
   ]

如何将其转换为 Highcharts 系列数组,使其看起来像这样:

series: [
    name: 'Organization',
    data: [
        [Date.UTC(2017, 08, 09), 3],
        [Date.UTC(2017, 08, 10), 1],
    ]
, 
    name: 'Individual',
    data: [
       [Date.UTC(2017, 08, 09), 2],
       [Date.UTC(2017, 08, 12), 1],
    ]
]

在 JSON 中,我有一些不需要的信息(来源和性别 ID)。

这是我的example in JSFiddle,包含完整的大数据集,我想使用 JS 对其进行转换并将其放入 Highchart 中。

有没有一种简单的方法可以将这样的 JSON 转换为可以插入到 Highchart 中的东西?

【问题讨论】:

series.data 中的第二个日期来自哪里? 个人和组织都只有两个数据点,每个数据点由一个日期和一个数字(计数)定义。 【参考方案1】:

勾选这个Fiddle,根据需要更新

    series: chartData

【讨论】:

谢谢。日期有问题,我似乎无法弄清楚为什么日期显示在 Highchart 的 x 轴上的方式 好的,我知道了 new Date(d.created_date).getTime() 需要使用 new Date(d.created_date) 的 insted。我将更改添加到Fiddle

以上是关于如何重塑现有的 JSON 以适应 Highcharts的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组值插入现有的 JSON 文档?

如何使用现有的json文件创建tmTheme文件?

如何将 Excel 转换为 JSON 并将其附加到现有的 JSON 文件?

如何将这个现有的 json 转换为 GraphQL 端点?

TypeScript:如何使现有的命名空间成为全局的?

如何注册现有的 Jersey MessageBodyReader Provider 来处理其他内容类型?