Высокие диаграммы превращают JSON в данные без потери информации - PullRequest
0 голосов
/ 10 декабря 2018

Я получил JSON с этим форматом:

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

Я хочу использовать его в этом примере: https://www.highcharts.com/stock/demo/responsive

Входные данные в этой форме:

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

Чтобы получить тот же вход, я преобразую свой json с помощью foreach и вставляю в массив, подобный этому

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

Это работает, но когда я использую его в своих диаграммах:

series : [{ data : array }] 

Я не могу получить доступ к class1 и class2.

Как я могу сделать это по-другому?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вы должны сохранить свойства class1 и class2 для конкретного точечного объекта в массиве данных.Каждая точка будет таким объектом:

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

. Этот подход позволяет получить доступ к class1 и class2 в каждой точке данных.

Демонстрация: https://jsfiddle.net/BlackLabel/bfpvo324/1/

0 голосов
/ 10 декабря 2018

Из вашего кода вы не помещаете 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;
  }, [])
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...