2012-11-06 6 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

Object.keys(obj).length 

스택 질문 참조 -javascript and 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 나는'for' 루프가 가진 호이 스팅 문제를 피하면서 새로운 범위를 만들기 때문에'Object.keys (obj) .forEach (function (key) {..}) '접근법을 선호합니다. – Domenic

+0

새 범위가 필요하다면 그렇습니다. 좋은 접근 방법입니다 ... 그렇지 않으면 간단한 'for'가 오버 헤드가 적은 것 같습니다. –

관련 문제