У меня есть JSON в таком формате:

[{"Wed Jan 23 00:00:00 IST 2013":3383387},
 {"Thu Jan 24 00:00:00 IST 2013":3388022},
 {"Fri Jan 25 00:00:00 IST 2013":3393322},
 {"Sat Jan 26 00:00:00 IST 2013":3401241},
 {"Sun Jan 27 00:00:00 IST 2013":3406134},
 {"Mon Jan 28 00:00:00 IST 2013":3410703},
 {"Tue Jan 29 00:00:00 IST 2013":3415120}]

Я пытаюсь создать простую линейную диаграмму, используя этот пример кода JSON и D3, упомянутый в http: //bl.ocks. org / 3883195. Вместо d3.tsv я использую d3.json. Но почему-то не принимает JSON в этом формате. Я считаю, что смогу заставить его работать, если этот JSON можно будет преобразовать в этот формат:

[{"Date":
  ["Wed Jan 23 00:00:00 IST 2013",
   "Thu Jan 24 00:00:00 IST 2013",
   "Fri Jan 25 00:00:00 IST 2013",
   "Sat Jan 26 00:00:00 IST 2013",
   "Sun Jan 27 00:00:00 IST 2013",
   "Mon Jan 28 00:00:00 IST 2013",
   "Tue Jan 29 00:00:00 IST 2013"],
 "Values":[3415120,2343244,454545,4564566,56334534,34543554,34543555]}]

Вопрос в том, есть ли простой способ преобразовать мой JSON в этот формат. Я использую функцию php json-encode для кодирования массива в JSON.

0
Vikalp Jain 30 Янв 2013 в 22:05

1 ответ

Лучший ответ

Единственная проблема с форматом, в котором находится ваш JSON, заключается в том, что ключи обозначают данные, которые вы хотите использовать для построения графика. Вы можете легко преобразовать его в формат, более подходящий к формату, с помощью d3.entries() однако - нет необходимости передавать D3 другой JSON.

1
Lars Kotthoff 30 Янв 2013 в 22:48
Спасибо @LarsKothoff за то, что указал мне в правильном направлении. Однако я не могу заставить его работать. Я создал скрипку на jsfiddle.net/6V3VV. Пожалуйста, дайте мне знать, сможете ли вы мне с этим помочь.
 – 
Vikalp Jain
31 Янв 2013 в 13:44
1
Рабочая скрипка здесь. В вашем случае вы можете обойтись только d3.keys и d3.values, потому что у вас есть массив ассоциативных массивов.
 – 
Lars Kotthoff
31 Янв 2013 в 15:45