2

JSON文字列を解析しようとしていますが、解析すると未定義になります。

var codes = jQuery.parseJSON(response);

$.each(codes, function (key, value) {
  alert(value.Display);
});

codes上記の変数の内容は次のとおりです。

["{ Display = string1, Sell = string2 }", 
 "{ Display = string1, Sell = string2 }"]

alertは値を返します。として表示しundefinedます。「String1」を期待していました。私は何が間違っているのですか?

4

4 に答える 4

6

これは有効な JSON 文字列ではありません。
正しい文字列は次のようになります。

'{ "Display": "string1", "Sell": "string2" }'
于 2013-01-06T15:41:24.003 に答える
3

できません。配列にはプロパティはなくDisplay、2 つの文字列を含む配列です。

文字列は JSON に似ていますが、解析するには十分ではありません。

Display文字列を JSON 標準に準拠させると、配列内の各項目をオブジェクトに解析して、プロパティにアクセスできます。

var response = '["{ \\"Display\\": \\"string1\\", \\"Sell\\": \\"string2\\" }", "{ \\"Display\\": \\"string1\\", \\"Sell\\": \\"string2\\" }"]';

var codes = jQuery.parseJSON(response);

$.each(codes, function (key, value) {
  var obj = jQuery.parseJSON(value);
  alert(obj.Display);
});

デモ: http://jsfiddle.net/Guffa/wHjWf/

または、入力全体を JSON 標準に準拠させて、オブジェクトの配列に解析できるようにすることもできます。

var response = '[{ "Display": "string1", "Sell": "string2" }, { "Display": "string1", "Sell": "string2" }]';

var codes = jQuery.parseJSON(response);
console.log(codes);
$.each(codes, function (key, value) {
  alert(value.Display);
});

デモ: http://jsfiddle.net/Guffa/wHjWf/1/

于 2013-01-06T15:43:29.000 に答える
1

誤って配列データを 2 回 json エンコードしたために、このエラーが発生しました。

このような:

$twicefail = '{"penguins" : "flipper"}';
return json_encode( $twicefail );

そして、私の見解では、次のように取り上げました。

var json_data = jQuery.parseJSON(my_json_response);

alert(json_data.penguins);      //Here json_data.penguins is undefined because I
                                //json_encoded stuff that was already json. 

修正されたコードは次のとおりです。

$twicefail = '{"penguins" : "flipper"}';
return $twicefail;

次に、私の見解では、次のように取り上げます。

var json_data = jQuery.parseJSON(my_json_response);

alert(json_data.penguins);     //json_data.penguins has value 'flipper'.
于 2014-08-18T22:32:09.550 に答える