1

次の文字列を取得します。

[{"Key":1,"Value":"correct"},{"Key":2,"Value":"incorrect"},{"Key":3,"Value":"incorrect"},{"Key":4,"Value":"correct"},{"Key":5,"Value":"incorrect"}]

JSON で TR の ID の値が「正しい」か「正しくない」かに基づいて、TR の背景色を変更したいと考えています。

JSON から個々のアイテムの値を取得するにはどうすればよいですか? 私が試してみました:

            success: function (result) {
                // update with results
                //alert(JSON.stringify(result));
                //$('#myDiv').html(JSON.stringify(result));

                // non of these work
                alert(result[0]);
                alert(result[key]);
            },
4

5 に答える 5

2

$.each()オブジェクトの配列を反復するために使用できます。

$.each(result, function(i, item) {
    alert(item.Key);
});

へのコールバックでは$.each()item繰り返される配列内の現在のアイテムへの参照になります。

次に、通常のプロパティアクセスを使用して、Keyプロパティの値を取得します。


もちろん、従来のforステートメントを使用して配列をループすることもできます。

for (var i = 0; i < result.length; i++) {
    var item = result[i];
    alert(item.Key);
}

Content-Typeこれはすべて、応答に適切な設定があるか、またはに与えdataType:"json"ていることを前提としています$.ajax()

于 2012-10-08T16:22:22.007 に答える
1

JSON形式をオブジェクトに変換できます。状況によっては配列になるため、 forEach を使用して必要なものを確認できます。

これを試して

var obj= JSON.parse( '[{"Key":1,"Value":"correct"},{"Key":2,"Value":"incorrect"},{"Key":3,"Value":"incorrect"},{"Key":4,"Value":"correct"},{"Key":5,"Value":"incorrect"}]' );



obj.forEach(function(i){alert(i.Key);alert(i.Value) })
于 2012-10-08T16:26:53.083 に答える
1

これを見てください: http://goessner.net/articles/JsonPath/ .私はそれを使用していませんが、Json 構造から値を取得するための良い方法のように見えます。

于 2012-10-08T16:30:12.653 に答える
0

Ajaxリクエストで..dataType:'json'を指定してください

試す

alert(result[0]["key"]);  // For the first

//

$.each(result , function(i) {
    console.log( 'Key is - ' + result[i]["Key"] + ' -- Value is - ' + result[i]["Value"]);
});

FIDDLEを確認してください </p>

于 2012-10-08T16:21:35.533 に答える
0

指定しませんが、JSON 文字列が ajax コードが応答として受け取るものであると仮定すると、実際にはそのテキストを再 JSON するため、二重にエンコードされた文字列になります。

jquery は、応答として json を期待していることがわかっている場合、それをネイティブ構造に自動デコードできます。

$.ajax({
   dataType: 'json',
   etc...
});

次に、あなたは単に持っているでしょう

alert(result[0]['key']);

また

data = jquery.parseJSON(result);
alert(data[0]['key']);
于 2012-10-08T16:23:38.077 に答える