2016-12-16 52 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做什麼?

泛型迭代器函數,可用於無縫遍歷對象和數組。具有長度屬性的數組和類似數組的對象(例如函數的參數對象)通過數字索引迭代,從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

如果您正在使用AJAX來獲取JSON,你可以很好的使用方法:$.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 
}); 

要從網址使用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

@克雷格你爲什麼不給它一個解釋? –

-1

請嘗試以下

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

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

另一個LQ答案沒有任何解釋。比前兩個答案更糟糕。 –