1

これは基本的なことのように思えるかもしれませんが、json オブジェクトを反復しようとしています。さまざまな例を機能させるのに苦労しているようですので、お詫び申し上げます。jQuery のドキュメントも読みましたが、そこにリストされている json の例は、私の json 構造と完全には一致しません。

これは、「1」が表示されるはずのコンソールに「null」と表示されている私の例へのリンクです。JSON配列の各「ノード」の article_id 要素を出力しようとしています。

http://jsfiddle.net/zZjfj/1/

var json = [
    [{
        "article_id": 1,
            "article_title": "test",
            "article_content": "test1"
    }, {
        "article_id": 2,
            "article_title": "test2",
            "article_content": "this is a second test article"
    }]
];

$.each(json, function (arrayID, group) {
    console.log(group.article_id);
});
4

3 に答える 3

5

あなたのjsonはオブジェクトの配列ではなく、オブジェクトの配列の配列です

反復を入力すると、要素ごとに、arrayIDはインデックス (0、1 など) であり、グループはサブ配列です。

問題を解決するには、コードで json の代わりに json[0] を使用します

$.each(json[0], function (arrayID, group) {
    console.log(group.article_id);
});
于 2013-02-01T02:10:10.490 に答える
1

あなたのオブジェクト「json」は、それ自体が2つの要素の配列である1つの要素を持つ配列です。例を次のように変更した場合:

var json = [
    { "article_id": 1,
      "article_title": "test",
      "article_content": "test1" },
    { "article_id": 2,
      "article_title": "test2",
      "article_content": "this is a second test article" }
  ];

次に、記事 ID: 1,2 を生成します。

2 次元配列を反復処理する必要がある場合は、ネストされたループを使用できます。

$.each(json, function (idx1, entry) {
  $.each(entry, function (idx2, group) {
      console.log(group.article_id);
  });
});
于 2013-02-01T02:11:11.150 に答える
1

別の配列内にネストされた配列があります。JSON がどのように出力されているかを確認したい場合がありますが、当面は別のレベルの反復によって簡単に解決できます。

$.each(json, function (arrayID, group) {
    $.each(group, function (arrayID, group) {
        console.log(group.article_id);
    });
});

http://jsfiddle.net/zZjfj/2/

JSON の値へのパスも表示できるスクリプトを作成しました: http://jsfiddle.net/ExplosionPIlls/zEBZr/1/

于 2013-02-01T02:11:26.493 に答える