JavaScript 배열 객체를 반복하는 간단한 jQuery 예제를 확인하세요.
var json = [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"}, {"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"} ]; $.each(json, function(idx, obj) { alert(obj.tagName); });
위 코드 조각은 정상적으로 작동하며 예상대로 "apple", "orange" 등을 표시합니다.
문제: JSON 문자열
다음 예에서는 JSON 문자열(작은따옴표 또는 큰따옴표로 묶임)을 직접 선언합니다.
var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(json, function(idx, obj) { alert(obj.tagName); });
Chrome에서는 콘솔에 다음 오류가 표시됩니다.
잡히지 않은 TypeError: '156'을 검색하는 데 'in' 연산자를 사용할 수 없습니다.
[{"id":"1","tagName":"apple"}에서...
해결책: JSON 문자열을 JavaScript 개체로 변환합니다.
이 문제를 해결하려면 표준 JSON.parse() 또는 jQuery의 $.parseJSON을 통해 JavaScript 객체로 변환하세요.
var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"}, {"id":"5","tagName":"pineapple"}]'; $.each(JSON.parse(json), function(idx, obj) { alert(obj.tagName); }); //or $.each($.parseJSON(json), function(idx, obj) { alert(obj.tagName); });