0

我正在尝试制定 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], [1231107] 9.7, -3.7], [1231203600000, -3.4, 3.2], [1231290000000, -3.9, -0.2], [1231376400000, -2.4, 6.7], [1231462800000, 3.8, 6.9], [123154,9208], [123154,9208]3. );

我遇到的问题是我想通过我自己的 AJAX 调用传递数据,该调用的结果将包含图形数据以及其他一些东西。但是,我似乎无法获得正确的格式,因此 HC 可以读取它。我阅读了他们关于格式的页面,但没有运气。

我认为问题在于“回调([]);” 需要删除容器,但是当我这样做时,数据不会显示在图表中。

4

3 回答 3

0

好的,我想通了。

当 jQuery 加载所有数据时,它会将其转换为字符串。在 Highcharts 使用之前,需要使用$.parseJSON(data).

感谢 Pawel 和 Austin 的帮助。

于 2013-03-22T02:56:07.007 回答
0

我曾经遇到过同样的问题。您的json 必须在将其放入 highcharts 系列之前进行解析
高图表系列接受这种格式的数组

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

而您未解析的 json 会尝试给出

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

删除你的 'callback([]);' container ,您需要先解析各个 '[x,y]' 点,然后再将其提供给系列对象

一种方法(在 js 中):

  1. 字符串[] 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(x,y1) 并将其提供给 chart.series(array1)
于 2013-03-21T07:36:30.880 回答
0

此回调用于 JSONP。您可以简单地使用标准 JSON 来实现:

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

没有任何评论、功能等。如果数据看起来像这样,它应该可以工作。

于 2013-03-21T11:52:49.573 回答