2014-11-01 57 views
-2

使用該代碼來訪問JSON數組的元素:遍歷JSON給出錯誤

var json = "{\"noteDetailList\": [ {\"linkName\": \"test1\"}]}" 

$.each(json, function() { 
         console.log(data) 
        }); 

迭代給出了這樣的錯誤:

Uncaught TypeError: Cannot use 'in' operator to search for '43' in {"noteDetailList": [ {"linkName": "test1"}]} jquery-1.11.0.js:592isArraylike jquery-1.11.0.js:592jQuery.extend.each jquery-1.11.0.js:359(anonymous function) (index):24jQuery.event.dispatch jquery-1.11.0.js:4624elemData.handle jquery-1.11.0.js:4292 

撥弄:

http://jsfiddle.net/rsv0tn5e/1/

我的迭代不正確嗎?

回答

2

你試圖遍歷一個字符串!無論是解析JSON成一個對象或者使用和實際的對象:

var jsonString = "{\"noteDetailList\": [ {\"linkName\": \"test1\"}]}"; 
 
var json = JSON.parse(jsonString); 
 

 
// OR 
 

 
var jsonObj = { 
 
    noteDetailList: [ 
 
    {linkName: "test1"} 
 
    ] 
 
}; 
 

 
iterateOverResult(json); 
 
iterateOverResult(jsonObj); 
 

 
function iterateOverResult(json) { 
 
    $.each(json, function(data) { 
 
    alert(data.toString()); 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

你要分析它喜歡:

JSON.parse(json); 

現在就來試試:

var json = "{\"noteDetailList\": [ {\"linkName\": \"test1\"}]}"; 

$.each(JSON.parse(json), function(data) { 
    console.log(data); 
});