JSON 배열 찾는 법 좀 알려 주세요..

JSON 배열 찾는 법 좀 알려 주세요..

QA

JSON 배열 찾는 법 좀 알려 주세요..

본문

 

두가지 질문입니다.
첫번째는 아래와 같은 배열에서 특정 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


이것도 가능
for (var i = 0; i < obj.length; i++) {     
        if(obj[i].id==2){ name =obj[i].name; break;}
}
-----------------------------------------------
 for (var i = 0; i < obj["student"].length; i++) {      
        if(obj["student"][i].name=="다리미"){ id  = obj["student"][i].id; break;}
}

자문자답 겸 추가질문...

 

이런식으로 하니까 되네요.

위 코드의 ?? 자리에 아래 코드를 넣었습니다.

 

var i = obj.findIndex((k)=>k.id==2);
var name = obj[i].name ;

alert(name);

 

그런데 더 쉬운 방법은 없나요?... findIndex 코드가 사용하기 좀 어렵네요...ㅠ

복잡해 보이는 건 마찬가지네요...ㅎ

배열요소에서 고유한 값이 있으면 루프없이 뭔가 간단한 함수나 방법이 있지 않나 싶었습니다.

예를들면...

 

var name = get(obj.id=2, name) // 여기서 get 은 제가 상상한(?) 이름입니다....ㅎ

 

그래도 가장 평범한 말씀하신 방법으로 찾는 것도 좋은 방법 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,643 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT