2014-07-21 2 views
-6

JSONJSON 값을 선택하는 방법 내가 필요 여기

var employees ='{"skills":[{"category":"JavaScript","tests":[{"name":"One","score":90}, {"name":"Two","score":96}]},{"category":"CouchDB","tests":[{"name":"One","score":79},"name":"Two","score":84}]}]}'; 

JQuery와

var obj = jQuery.parseJSON(employees); 
for(i=0; i<obj.skills[0].tests[0].length; i++) 
{ 
    alert(obj.skills.tests.name[i]); 
    } 

안녕하세요 출력이 "한 90 이 96" 은 내가 원하는 것입니다 원하는 경고에 ul li에 경고하거나 인쇄하기위한 첫 번째 테스트 값. 아무도 나를 도와주세요.

+2

'경고 (obj.skills [0] .tests [0] .name을은 [내가]);'놓친'[0]' – Satpal

+0

@Satpal는 더는이 – MV1

+0

를 작동하지 않는 첫 번째는 JSON이 없다 유효하지. [{ "skill": "{"category ":"JavaScript ","tests ": [{"name ":"One ","score ": 90}, {"name ":"Two " ","score ": 96}]}, {"category ":"CouchDB ","tests ": [{"name ":"One ","score ": 79}, {"name ":"Two " "score": 84}]}]' –

답변

0

테스트 개체가 목록 아닌이 도움이

var obj = jQuery.parseJSON(employees); 
var test; 
for(var i=0;i<obj.skills[0].tests.length;i++){ 
test = obj.skills[0].tests[i]; 
alert(test.name+' '+test.score); 

} 

아래 희망 ...처럼 사용하지만이 속성 namescore 있습니다

var obj = jQuery.parseJSON(employees); 
var test0 = obj.skills[0].tests[0]; 
alert(test0.name+' '+test0.score); 

는 모든 시험에 표시하려면를 스킬 :

var obj = jQuery.parseJSON(employees); 
var testi; 
for(var i=0;i<obj.skills[0].tests.length;i++){ 
    testi = obj.skills[0].tests[i]; 
    alert(testi.name+' '+testi.score); 
} 
+0

감사합니다. – MV1

-1

위에서 언급 한 Satpal의 루프에서 [0]을 놓쳤으므로 데이터를 경고 할 수 없습니다. 그래서

+0

업데이트 된 토플 pls 리뷰 –

+0

왜 투표가? 내가 설명해 줄 수있어? –

+0

OP 게시 됨 잘못된 JSON. 하지만 난 당신을 downvote하지 않았다 –

0

로다시에 _.forEach를 사용하는 것이 가장 좋습니다. 네,하지만 네이티브 자바 스크립트를 사용하고자한다면 쉽게 찾을 수 있습니다. 또한이 개방 즉 교정기 놓친 유의하시기 바랍니다 "{"이전

{//이 거기
"이름"입니다 : "2",
"점수"84 }

솔루션

var obj = JSON.parse(employees);  
for(i=0; i<obj.skills.length; i++) 
{ 
    var temp = obj.skills[i]; 
    for(j=0;j<temp.tests.lengh;j++) 
    { 
     var outputObj = temp.tests[j]; 
     alert(outputObj.name+" "+outputObj.score); 
    } 

} 

모든 기술의 출력을 싶지 않는 경우

즉 forloop 외부를 제거
var obj = JSON.parse(employees);   

for(j=0;j<obj.skills[0].tests.lengh;j++) 
{ 
    var outputObj = temp.tests[j]; 
    alert(outputObj.name+" "+outputObj.score); 
} 
0

사용. JQuery와의 each

var employees = { 
    "skills": [{ 
     "category": "JavaScript", 
      "tests": [{ 
      "name": "One", 
       "score": 90 
     }, { 
      "name": "Two", 
       "score": 96 
     }] 

    }] 
}; 

$.each(employees.skills, function (key, val) { 

    for (var i in val.tests) { 

     alert(val.tests[i].name); 
     alert(val.tests[0].score); 
    } 
}); 
관련 문제