0

私はJavaScriptにかなり慣れていないので、JSON文字列の特定の値にアクセスする方法がわかりません。私はこれらのオブジェクトを見つけましたが、$.each関数を使ってループすることでそれらにアクセスしました。しかし、ここでは機能していないようです。私はやろうとしましalert(data.type);たが、それは私にundefined変数を与えます。

TL; DR:
これはAJAX経由で取得したJSON文字列です。typejQueryを使用してJavaScriptの値にアクセスするにはどうすればよいですか?

{
    "parent_id": "100003381460677",
    "type": "post",
    "title": "a",
    "body": "b",
    "date_normal": "01 May 2012"
}
4

5 に答える 5

3

parseJSONあなたを助けます

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name );
于 2012-05-01T11:31:20.500 に答える
1

このJSONデータがAJAX呼び出しからのものであると想定して、サーバーが正しい応答ヘッダーjsonを送信するように適切に構成されていない場合は、正しいデータ型()を指定していることを確認してください。Content-Type

$.ajax({
    url: '/foo',
    type: 'POST',
    dataType: 'json',
    success: function(result) {
        alert(result.type);
    }
});

次に、成功コールバックに渡された引数は、すでにjavascriptオブジェクトを表します(サーバー応答JSON文字列からjQueryによって自動的に逆シリアル化されます)。そして、javascriptオブジェクトを取得したら、名前でそのプロパティに直接アクセスできます。あなたが示した例では、それは単純なオブジェクトであり、配列ではありません。したがって、名前でプロパティに直接アクセスできます。

于 2012-05-01T11:29:45.167 に答える
0

これをajaxコールバックとして使用すると仮定します。

function(data){ ... }

ドット表記でアクセスできます。

data.type

于 2012-05-01T11:31:10.437 に答える
0

使用している場合$.getJSON(これにより、AJAX応答がJSONオブジェクトとして自動的に解析されます)

$.getJSON("<url>", function(data, status) {
     $.each(data, function(i, elem) {
          console.log(elem.type);
     });
});

$.eachのコールバックへの最初の引数は、要素自体ではなく、配列内のインデックスであることに注意してください(これが2番目の引数です)。

于 2012-05-01T11:33:29.753 に答える
0

次の2つのスレッドをご覧ください。

javascriptでJsonの値を見つける

jqueryでjsonから個別の値を取得する方法

お役に立てば幸いです。

于 2012-05-01T11:44:12.587 に答える