JSON数据格式不正确

Incorrect JSON data format

本文关键字:不正确 数据格式 JSON      更新时间:2023-09-26

我正在尝试创建一些JSON,用于使用Highcharts 显示图表

http://www.highcharts.com/

我复制了他们的一个例子:

http://www.highcharts.com/stock/demo/basic-line

单击图形下的"查看选项"以查看源。还有一个JSFiddle可以玩

如果我在本地复制,一切都很好。

问题是当我尝试使用自己的数据源时。

我有一个ASP.NetMVC控制器,它正在吐出一个数组列表,就像它们的数据源一样。然而,这并不奏效。

他们的数据源如下http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?

他们像这个一样检索

$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function (data) {

所以我想我应该退一步,准确地复制他们的数据,并将其放在服务器上的文本文件中,然后尝试:

所以我尝试了这个

$.getJSON('/data.txt', function (data) {

和这个

$.get('/data.txt', function (data) {

但两者都不起作用

在检索数据后,我也尝试过同时使用JSON.parsejQuery.parseJSON,但同样,似乎不起作用

我还想知道是什么?处于数据的开始

他们的数据看起来像这个

?([[<some data>],[some data]]);

我没有收到任何错误消息,图表只是没有显示

有什么想法吗?

解决了它

只需要检索数据并将其转换为数组并将其传递给图表。

需要是一个数组,而不是JSON

该数据源正在输出用于跨域AJAX请求的JSONP。由于额外的callback(...)包装,它不是有效的"原始"JSON。

请在此处阅读:http://api.jquery.com/jQuery.ajax/在"dataType"部分下。

正如您在标记中所说,它不是JSON,而是JSONP。不要解析它,用回调捕获它。使用jQuery.getScript执行此操作,并定义function callback(data)。在该函数中,data应该包含(解析的)对象。此外,请将URL中的?替换为callback(或您为函数命名的任何名称)-?在JavaScript中不是有效的标识符,因此?([....])是无稽之谈。