2012-04-09 6 views
1

내 모바일 앱이 외부 json 개체를 읽습니다. 동적으로 생성 된 json 구조에 키 노드가 있다는 것을 자바 스크립트에서 어떻게 확인할 수 있습니까? 나는 hasOwnProperty 또는 containsKey 메소드를 시도했지만 운이 없었다.jquery 모바일 자바 스크립트 확인 json 키

예 JSON 데이터 이러한 요소로

{ "element1": 
    { "element2": { "Number": "0" }, 
    "element3": { "Number": "1" }, 
    "element4": { "Number": "2" } 
    } 
} 

는 I 키 element3이 구조에 존재하는지 확인하려는 동적으로 생성된다. data.element1.hasOwnProperty ("element3")를 사용할 수 없습니다.

답변

1

예, hasOwnProperty() 메소드는 Json 객체에 대해 작동하지 않습니다. Java Script Object에서 작동합니다. 따라서이 Json 객체를 eval() 메소드를 사용하여 Java Script 객체로 변환하고 그 객체 내부를 확인하기 만하면됩니다.

위의 Json 구조를 변환하면 다른 객체 (JSObject) 안에 Object (element1)가 생성됩니다. element1은 property2, element3 및 element4 속성을 포함합니다. 따라서 코드는 이와 같이되어야합니다.

var MyObject={ "element1": 
    { "element2": { "Number": "0" }, 
    "element3": { "Number": "1" }, 
    "element4": { "Number": "2" } 
    } 
} 

var JSObject=eval('(' + MyObject+ ')'); 

var IsExistElement3 = JSObject.element1.hasOwnProperty("element3"); 
+0

작동합니다! 고마워요! – nicBBB