web-dev-qa-db-ja.com

jQueryパースJSON多次元配列

次のようなJSON配列があります。

{
  "forum":[
    {
      "id":"1",
      "created":"2010-03-19 ",
      "updated":"2010-03-19 ","user_id":"1",
      "vanity":"gamers",
      "displayname":"gamers",
      "private":"0",
      "description":"All things gaming",
      "count_followers":"62",
      "count_members":"0",
      "count_messages":"5",
      "count_badges":"0",
      "top_badges":"",
      "category_id":"5",
      "logo":"gamers.jpeg",
      "theme_id":"1"
    }
  ]
}

JQueryを使用したい.getJSONは、各配列値の値を返すことができますが、それらにアクセスする方法についてはわかりません。

これまでのところ、私はこのjQueryコードを持っています:

$.get('forums.php', function(json, textStatus) {
            //optional stuff to do after success
            alert(textStatus);
            alert(json);

        });

JQueryでこれを行うにはどうすればよいですか?

21
ChrisMJ

JSONの_{}_はオブジェクトを表します。オブジェクトの各プロパティは、_key:value_とコンマ区切りで表されます。プロパティ値は、_json.forum_のようなピリオド演算子を使用してキーからアクセスできます。 JSONの_[]_は配列を表します。配列の値は任意のオブジェクトにすることができ、値はコンマで区切られます。配列を反復処理するには、インデックス付きの標準forループを使用します。キーで直接参照せずにオブジェクトのプロパティを反復処理するには、_for in_ループを使用できます。

_var json = {"forum":[{"id":"1","created":"2010-03-19 ","updated":"2010-03-19 ","user_id":"1","vanity":"gamers","displayname":"gamers","private":"0","description":"All things gaming","count_followers":"62","count_members":"0","count_messages":"5","count_badges":"0","top_badges":"","category_id":"5","logo":"gamers.jpeg","theme_id":"1"}]};

var forum = json.forum;

for (var i = 0; i < forum.length; i++) {
    var object = forum[i];
    for (property in object) {
        var value = object[property];
        alert(property + "=" + value); // This alerts "id=1", "created=2010-03-19", etc..
    }
}
_

これをjQueryの方法で行いたい場合は、 $.each() を取得します。

_$.each(json.forum, function(i, object) {
    $.each(object, function(property, value) {
        alert(property + "=" + value);
    });
});
_

「プレーンJavaScript」の方法と同じ変数名を使用したので、jQueryが「内部で」何をするのかをよりよく理解できます。お役に立てれば。

59
BalusC

それはうまくいくはずです。 $.getJSONの代わりに$.getを使用してください。

0
Samir Talwar