2016-12-16 14 views
-3

でJSONオブジェクトを反復する:私はこれを使用しようとしてきました私はJSONのこのような反復処理したいどのようにjQuery

{ 
    "object": { 
    "array1": { 
     "id": 1 
    }, 
    "array2": { 
     "id": 2 
    } 
    } 
} 

を:

for (var i in dictionary) { 
    console.log(dictionary[i].id); 
} 

が、動作しません。

+6

を試してみてください? https://learn.jquery.com/using-jquery-core/iterating/ – epascarello

+0

https://jsfiddle.net/jzxe1a6b/ – timo

+0

@epascarello今はっきりしているので再開します。 –

答えて

0

私はどこでも検索したと私が欲しい答えを見つけることができません。真剣に? $.eachは何を見ていないのですか?

一般的なイテレーター関数で、オブジェクトと配列の両方をシームレスに反復処理するために使用できます。長さプロパティを持つ配列や配列のようなオブジェクト(関数のargumentsオブジェクトなど)は、0からlength-1までの数値インデックスによって反復されます。他のオブジェクトは、名前付きプロパティを使用して反復されます。

var arr = { 
 
    "object": { 
 
    "array1": { 
 
     "id": 1 
 
    }, 
 
    "array2": { 
 
     "id": 2 
 
    } 
 
    } 
 
}; 
 
$.each(arr, function (i, v) { 
 
    console.log(i); 
 
    console.log(v); 
 
    $.each(v, function (idx, val) { 
 
    console.log(idx); 
 
    console.log(val); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

AJAX

あなたはJSONを取得するためにAJAXを使用している場合、あなたは非常によく使用することができます:$.getJSON

$.getJSON("https://cdn.rawgit.com/fge/sample-json-schemas/master/avro/avro-schema.json", function (res) { 
 
    $.each(res, function (i, v) { 
 
    console.log(i); 
 
    console.log(v); 
 
    if (typeof v == "object") 
 
    $.each(v, function (idx, val) { 
 
     console.log(idx); 
 
     console.log(val); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

あなたの作品は、@Craigsは動作しません。 – decryptable

+1

できれば受け入れます。 – decryptable

+0

@decryptableありがとうございます。 –

-1
var objectData = { 
    "object": { 
    "array1": { 
     "id": 1 
    }, 
    "array2": { 
     "id": 2 
    } 
    } 
}; 

$.each(objectData, function(key, data){ 
    // Do stuff here 
}); 

URLからJSONでこれを使用するには:

$.ajax({ 
    url: URL, 
    dataType: 'jsonp', 
    success: function(json) { 
     $.each(json, function(key, data){ 
      console.log(key); 
      console.log(data); 
     }); 
    } 
}); 
+0

私はこれを行かせます。 – decryptable

+0

申し訳ありません、私はそれを編集しました – Craig

+0

@Craigなぜあなたはそれが何をしているのか説明しませんか? –

-1

は、人々はもはやドキュメントとチュートリアルを読んではいけない、次の

var d={ 
    "object": { 
    "array1": { 
     "id": 1 
    }, 
    "array2": { 
     "id": 2 
    } 
    } 
} 

$.each(d,function(i,v){console.log(i,v)}) 
+2

説明なしの別のLQ回答。前の2つの答えより悪い。 –

関連する問題