JSON 배열 찾는 법 좀 알려 주세요.. 채택완료
도레미
3년 전
조회 2,710
두가지 질문입니다.
첫번째는 아래와 같은 배열에서 특정 id 값인 요소를 찾은뒤, name 을 알아 내려면 ?? 자리에 어떻게 해야 하는지??
<script>
var txt = '[{"id":"1","name":"가갑순"},{"id":"2","name":"나도순"},{"id":"3","name":"다리미"}]';
var obj = JSON.parse(txt);
var name = ?? //-- id 가 2인 것을 찾아서 이름(나도순)을 저장
alert(name);
</script>
두번째는 아래 JSON 문자열(txt)이 좀 다릅니다.
student 의 요소로 배열을 사용한 객체입니다.
이 경우에 는 배열에서 name='나도순' 을 찾은뒤, id 값을 알아 내려면??
<script>
var txt = '{"student":[{"id":"1","name":"가갑순"},{"id":"2","name":"나도순"},{"id":"3","name":"다리미"}]}';
var obj = JSON.parse(txt);
var no = ?? //--- '나도순' 이름으로 찾아서 번호(2)를 저장
alert(no); // 번호 출력
</script>
여기저기 검색해도 객체 만드는 법과 1개일때는 설명이 많은데 다중배열객체에서 특정 배열요소만 찾는 방법을 못찾겠습니다...ㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
3년 전
</p>
<p>이것도 가능</p>
<p>for (var i = 0; i < obj.length; i++) {
if(obj[i].id==2){ name =obj[i].name; break;}</p>
<p>}</p>
<p>-----------------------------------------------</p>
<p> for (var i = 0; i < obj["student"].length; i++) {
if(obj["student"][i].name=="다리미"){ id = obj["student"][i].id; break;}</p>
<p>}
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
3년 전
복잡해 보이는 건 마찬가지네요...ㅎ
배열요소에서 고유한 값이 있으면 루프없이 뭔가 간단한 함수나 방법이 있지 않나 싶었습니다.
예를들면...
var name = get(obj.id=2, name) // 여기서 get 은 제가 상상한(?) 이름입니다....ㅎ
그래도 가장 평범한 말씀하신 방법으로 찾는 것도 좋은 방법 같습니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인