2012-11-06 19 views
1

我需要在循環中解析一個像{"key1":"val1","key2":"val2","key3":"val3"}這樣的json對象。如何在js中解析json?

嘗試:

var inobj = '[{"key1":"val1","key2":"val2","key3":"val3"}]'; 
var obj = eval(inobj); 
    for (var i = 0; i < 3; i++) { 
     var key = i; 
     var val = obj[key]; 
     alert (key+' = '+val); 
    } 

但我不知道燙知道obj.length

+1

相關:http://stackoverflow.com/questions/4935632/how-to-parse-json-in -javascript和http://stackoverflow.com/questions/11922383/i-have-a-nested-data-structure-json-how-can-access-a-specific-value –

回答

5
var obj = JSON.parse('{"key1":"val1","key2":"val2","key3":"val3"}'); 

Object.keys(obj).forEach(function (key) { 
    alert(key + " = " + obj[key]); 
}); 
+0

或簡單地'for(var key in obj ){...}'。 –

+0

@FelixKling我更喜歡'Object.keys(obj).forEach(function(key){..})'方法,因爲它創建了一個新的範圍,避免了for循環中固有的提升問題。 – Domenic

+0

如果需要一個新的範圍,那麼是的,這是一個很好的方法......否則,一個簡單的'for'似乎有更少的開銷。 –