2013-03-21 3 views
0

Я пытаюсь разработать формат для Highcharts.Формат Highcharts

В одном из демоса, есть следующий вызов:

$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=range.json&callback=?', function(data) {code to build the chart 

Когда вызов сделан, данные аналогичны возвращается следующее:

callback([ 

/* 2009-01- 01 */ [1230771600000, -5,8, 0,1], [1230858000000, -4,1, 1,4], [1230944400000, -0,5, 4,1], [1231030800000, -8,9, -0,7], [1231117200000, -9.7 , -3,7], [1231203600000, -3,4, 3,2], [1231290000000, -3,9, -0,2], [1231376400000, -2,4, 6,7], [1231462800000, 3,8, 6,9], [1231549200000, 3.1, 6.8] ]);

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу доставить данные через мой собственный вызов AJAX, который будет иметь результат, который будет содержать данные графика, а также некоторые другие вещи. Тем не менее, я не могу представить формат правильно, поэтому HC может его прочитать. Я читал их страницы о форматах, но не повезло.

Я думаю, что проблема заключается в обратном вызове ([]); контейнер должен быть удален, но когда я это сделаю, данные не отображаются в диаграмме.

lee

ответ

0

Я столкнулся с одной проблемой один раз. Ваш JSON должен быть проанализирован перед подачей его в серию Highcharts
высоких график серия принимает массив в этом формате

[[float,float],[float,float]] 

в то время как ваш неанализируемые JSON будет пытаться дать

[[String,String],[String,String]] 

после удаления ваш callback ([]); контейнер, необходимо разобрать индивида '[х, у]' точки перед подачей его на объект серии

один из способов сделать это (в JS):

  1. String [] jsonComponents = jsonWithoutContainer.split (",");
  2. Итерации каждого из массива jsonComponents.
  3. для каждого jsonComponent - String [] xyComps = jsonComponent.split (",");
  4. x = parseFloat (xyComp [0]); y1 = parseFloat (xyComp [1]); y2 = parseFloat (xyXomp [2]);
  5. поместить их в массив, используя array1.push (х, y1) и подачу его к chart.series (array1)
+0

Спасибо Остин. Я могу посмотреть, что вы говорите. Однако я не уверен на 100%. В вызове, который я положил в свой пост, результаты возвращаются в формате JSON. Итак, как они возвращаются, они отличаются от того, что они поставляют их в качестве моей части моих собственных форматированных данных JSON? –

0

Этот обратный вызов используется для JSONP.Вы можете просто использовать стандартный JSON для достижения этой цели:

[[1230771600000, -5.8, 0.1], [1230858000000, -4.1, 1.4], [1230944400000, -0.5, 4.1] ... ] 

без каких-либо комментариев, функция и т.д. Если данные будут выглядеть таким образом, он должен работать.

0

Хорошо, я понял это.

Когда jQuery загружает все данные, он преобразует его в строку. Прежде чем он сможет использоваться Highcharts, его необходимо преобразовать обратно в объект с помощью $.parseJSON(data).

Спасибо, Павел и Остин за помощь.

Смежные вопросы