2012-02-29 33 views
3

私は彼らの例の一つコピーしたHighcharts不正なJSONデータ形式

http://www.highcharts.com/

を使用してグラフを表示するために使用されるいくつかのJSONを作成しようとしています:

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

クリックをグラフの下にある[表示オプション]をクリックすると、ソースが表示されます。私はローカルですべてが正常に動作することをコピーした場合JSFiddleは

と遊ぶためにそこにもあります。

私自身のデータソースを使用しようとすると問題が発生します。

私はちょうど彼らのデータソースのように、アレイのリストを吐き出しているASP.Net MVCののcontrolerを持っています。しかし、それは動作しません。

彼らのデータソースは、この http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=のように見えますか?

、彼らはだから私は、私は戻って一歩を踏み出すと、正確にthierデータをコピーして、私のサーバー上のテキストファイルに入れて、それを試してみようと思いました。この

$.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]]); 

のように見えるで私はグラフがちょうど

任意のアイデアが表示されない、任意のエラーメッセージを得ることはありませんか?

ITを解決しただけで、データをretriveし、配列にそれを回すと、チャートにそれを渡す必要があります。

は、データソースは、クロスドメインAJAXリクエストのためのものであるJSONPをouputtingれるアレイではなく、JSON

+0

私は現時点で同じ問題を抱えています...あなたはそれをどのように解決したかについて少し詳しく知ることはできません。 Highchartsをプロジェクトに統合しようとしていて、デモが動作する理由を知ることができず、自分のものを使用しても...他の答えを理解するのに問題があります...あなたを+1しました。 – Wil

答えて

3

する必要があります。その余分なcallback(...)ラッパーのため、有効な '生の' JSONではありません。

ここでは、 'dataType'セクションのhttp://api.jquery.com/jQuery.ajax/を読んでください。

+0

リクエストしているURLがあなた自身のサーバーにない場合、ほとんどの場合、クロスドメインリクエストとみなされ、JSエンジンによって無視/終了されます。 jsonpを 'ローカル' ajaxリクエストに使用することはできないというルールはありません。それは必須ではないだけで、余分なオーバーヘッドが追加されます。 –

2

あなたがタグに言うように、それはJSONPだ、JSONではありません。それを解析せず、コールバックでキャッチします。それを行うにはjQuery.getScriptを使用し、function callback(data)を定義してください。その関数の内部では、dataは(解析された)オブジェクトを含むべきです。また、URLの?callback(または名前を付けたもの)に置き換えてください。?はJavaScriptの有効な識別子ではないため、?([....])はナンセンスです。

関連する問題