2014-03-27 3 views
0

JSON 배열 요소 내의 특정 요소를 선택하기 위해 변수를 제공 할 수 있습니까?변수를 사용하여 JSON 배열 요소 선택

내가 한 가정 많은 사용자 :

"users": [ 
    { "id":"000000", "uname": "admin", "password": "admin", "phash": "b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86", 
     "profile": { 
      "fullname" : "Admin Admin", 
      "datejoined": "01-01-2014", 
      "reputation": "100", 
      "displaypic": "http://www.google.com/logo.png", 
      "cart": { 
       "Cid" : "1000000", 
       "item": [ 
        { "Iid": "00000001", "quantity": "10" } 
       ] 
      } 
     } 
    }, 

는 jQuery를 사용하여 단지 사용자 이름을 공급하여 위의 요소를 선택 할 수 있습니까?

나는 시도했다 : 참고 : jQuery를에 UNAME는 약간의 운이

$.getJSON('ssUsers.json', function (data) { 

     $(data.users[uname].profile.cart.item).each(function() { 
      ++cartItems; 
     }); 

할당 "관리자"의 변수입니다 :

[오류] 형식 오류 : '정의되지 않은'는 개체가 아닙니다

+0

내가 wouldnt가 쉽게 (그리고 아마도 가장 좋은 방법)에 의해 JSON – Adil

+0

의 프로필을 볼 수없는 키'users'는 사용자의'id'이라고? : '000000': [{...}]' –

답변

0

Try this:

$.getJSON('ssUsers.json', function (data) { 

     for(i=0; i<data.users.length ; i++){ 
      $(data.users[i].uname.profile.cart.item).each(function() { 
       ++cartItems; 

      } 
     }); 
+0

이 작업은 가능하지만 많은 사용자가 있지만 첫 번째 사용자 만이 작업을 수행 할 수 있습니다 – Andrei0427

+0

루프를 유지하십시오 –

+0

"프로필"은 "uname" 그 코드는 실패해야합니까? – Roberto

1

grep 사용 ('[UNAME]의 .profile data.users'를 평가) :

thisUser = $.grep(data.users, function(e) { return e.uname==uname});