2

JavaScript で JSON データを配列として処理する際に問題が発生しています。私のJSON配列は次のようになります:

    MyArray([['one','two','three'],['four','five','six']]);

JSでは、このメソッドを使用して受信しようとしています:

   $.getJSON('http://test.com/array.json', function(data) {
        alert(data);
   }

しかし、私はデータを取得しません。私が使用している場合

$get('http://test.com/array.json', function(data) 

$getJSON の代わりに、データを文字列として受け取ります。

どんな助けでも大歓迎です。

4

3 に答える 3

2

データは JSON ではなく、JSONPです。ここMyArrayで、 は JSONP コールバック関数です。

理論的には、話している Web サービスは、名前callback=を設定するパラメーターをサポートする必要があります。MyArray

追加するだけの場合&callback=?、jQuery はランダムな名前のコールバック関数を自動的に生成successし、必要なデータで関数を呼び出します。

于 2012-09-17T12:25:29.767 に答える
1

これは JSON ではありません:

 MyArray([['one','two','three'],['four','five','six']]);

JSON 文字列は、評価したい単なる JavaScript ではなく、[またはで始まる必要があり{ます。

標準を見てください: http://www.json.org/

最初はコンストラクターがあるように見えるので、これはおそらく JSONP でさえありません。

標準の JSON 配列を作成することをお勧めします。

"[['one','two','three'],['four','five','six']]"

インスタンスが必要な場合は、クライアント側のコンストラクターを使用しMyArrayます。

于 2012-09-17T12:21:49.850 に答える
0

JSON が無効です。そのままの形でまだまだ使えます。メソッドを使用してgetから、次のことを試してください。

$.get('http://test.com/array.json', function(data) {
  data = data.replace("MyArray(", '"');
  data = data.replace(");", '"');
  var myData = JSON.parse(data); // Converted JSON to object.
}
于 2012-09-17T12:27:06.807 に答える