2

jQuery $.ajax()成功コールバックの呼び出しを介してこの文字列を返すWebサービスがあります。

[{"WaitlistID":1,"RID":45034,"CustomerID":2765957,
 "IsAdmin":false,"TruckSize":1,"Points":1},
 {"WaitlistID":2,"RID":45034,"CustomerID":2765957,
 "IsAdmin":false,"TruckSize":1,"Points":1}]

残念ながら$.each()、成功コールバックでその値を呼び出すと、その中のすべての文字が繰り返され、2要素の配列として扱われません。これが私が望んでいることです。)関数を試しましたmakeArray(が、うまくいきませんでした。その文字列をJSONオブジェクト配列に変換するにはどうすればよいですか?

編集:

コメントに応えて(ありがとう、みんな)私はすでにdataTypeを'json'に設定しましたが、これは奇妙なことです。これが問題のコードです。

jQuery.ajax({
    type: "POST",
    url: pagePath + "/" + fn,
    contentType: "application/json; charset=utf-8",
    data: paramList,
    dataType: "json",
    success: successFn,
    error: errorFn
});

..したがって、元々機能しなかった理由はわかりませんが、parseJSON()ビットでうまくいきました。みんなの助けに感謝します。

4

4 に答える 4

4

jQuery.parseJSONを使用して解析できます。

var obj = $.parseJSON(str);

ただし、サーバーが正しいコンテンツタイプを返した場合、jQueryはすでにこれを実行しているはずです。そうでない場合は、jQueryを指定して応答をJSONとして扱うことができます。

$.get("test.php", function(data){
   // callback
}, "json");

またはさらに良いことに、jQuery.getJSONを使用します。

于 2012-06-18T20:25:45.313 に答える
1

jQuery.parseJSON()で解析してみてください!

于 2012-06-18T20:25:50.157 に答える
1

返されるのは文字列です。呼び出しを設定dataTypeしてみてください。$.ajax

$.ajax({
   url: blahblah,
   dataType: 'json',
   ...
});
于 2012-06-18T20:25:52.247 に答える
1

あなたが持っている:

success: successFn

存在しますかsuccessFn()、そしてそれはパラメータを取りますか?つまり、それは次のように定義されていfunction successFn(myObject)ますか?その場合myObject、JSON文字列で記述されたオブジェクトが含まれます。解析は必要ありません。

于 2012-06-18T20:31:02.540 に答える