簡體   English   中英

JSON數據格式不正確

[英]Incorrect JSON data format

我正在嘗試使用Highcharts創建一些用於顯示圖表的JSON

http://www.highcharts.com/

我復制了他們的一個例子:

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

點擊圖表下方的“查看選項”查看來源。 還有一個JSFiddle可供玩耍

如果我在本地復制它一切正常。

問題是當我嘗試使用自己的數據源時。

我有一個ASP.Net MVC控制器,它正在吐出一個數組列表,就像它們的數據源一樣。 但是,這不起作用。

他們的數據源看起來像這樣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

該數據源正在輸出JSONP,這是針對跨域AJAX請求的。 由於額外的callback(...)包裝,它不是有效的'原始'JSON。

在這里閱讀它: http//api.jquery.com/jQuery.ajax/在'dataType'部分下。

正如你在標簽中所說,它不是JSON,而是JSONP。 不解析它,用回調捕獲它。 使用jQuery.getScript來完成它,並定義function callback(data) 在該函數內部, data應包含(已解析的)對象。 另外,更換? callback的URL中(或者你命名為函數的任何東西) - ? 在JavaScript中不是有效的標識符,所以?([....])是無稽之談。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM