2011-03-18 2 views
0

이 예제가 JSON 사이트에있는 경우 내 경우에는 속성 이름이 "glossary"인 모든 JSson이있는 API를 사용하고 있습니다. 요청이있을 때마다 변경됩니다. ... 나는 등 사과 및 ...매번 속성 이름이 바뀌면 값을 트래버스하면

XML을 통과하기 쉬웠다있을거야 당신이 "용어"를 검색 할 경우 "사과"을 검색하면 첫 번째 속성이 용어이 있습니다 의미 ...하지만 JSON에서 수행하는 방법을 모르겠다. 나는 t를 얻는 방법을 모른다. 변경 ...

는 자바 스크립트를 사용하여 용어 경우 그가 제목을 가치/JQuery와 나는

{ 
     "glossary": { 
      "title": "example glossary", 
      "GlossDiv": { 
       "title": "S", 
       "GlossList": { 
        "GlossEntry": { 
         "ID": "SGML", 
         "SortAs": "SGML", 
         "GlossTerm": "Standard Generalized Markup Language", 
         "Acronym": "SGML", 
         "Abbrev": "ISO 8879:1986", 
         "GlossDef": { 
          "para": "A meta-markup language, used to create markup languages such as DocBook.", 
          "GlossSeeAlso": ["GML", "XML"] 
         }, 
         "GlossSee": "markup" 
        } 
       } 
      } 
     } 
    } 
+0

제목 찾기 규칙은 무엇입니까? 최상위 레벨을 반복하고 건너 뜁니 까? –

답변

1
for (property_name in some_object) { 
    some_object[property_name]... 
} 
+0

'hasOwnProperty' 검사를하지 않으면'some_object'의 프로토 타입 체인에서 속성을 트래버스 할 수도 있습니다. – Zikes

0

에 걸쳐 반복 해보십시오 데이터 같은 [0] .title ...하지만 나던 작업을 시도 json 객체 안의 모든 속성

 
var json = ...; 

for (var i in json) { 
    if (json.hasOwnProperty(i)) { 
     var elem = json[i]; 
     // handle element here 
    } 
} 

hasOwnProperty는 c 속성에 추가 된 속성을 가져 오지 않도록합니다. 객체 프로토 타입을 교수형에 처하는 것.

0

당신이 개체의 최초이자 유일한 재산을 반환에 관심이 있다면,이 트릭을 수행해야합니다

경우에 거기에 JSON 개체의 여러 속성이있는 곳에 주목해야한다
function getChild(obj){ 
    var prop; 
    for(prop in obj){ 
     if(Object.prototype.hasOwnProperty.call(obj,prop)){ 
      return obj[prop]; 
     } 
    } 
} 

var json={glossary:{...}}; 

var child = getProp(json); // child should now contain the glossary object 

for..in traversal에 특정 순서가 없으므로 어떤 자식이 반환 될지를 보장 할 수 없습니다.

관련 문제