2012-05-04 2 views
0

내가의 내가 개체JSON 객체 반사

var jsonObj = eval('{"key1":"value1","key2":"value2"}'); 

가 있다고 가정 해 보자, 내가

아니라 속성 이름을 지정하여 된 JSONObject에서 속성 값을 얻을 수있는 방법을 알아 내려고 노력하고 내가 원하는

function getPropertyValue(key){ 
return jsonObj.key; 
} 

alert(getPropertyValue("key1")); 

은 내가 jsonObj.Key를 사용하여 값을 얻을 수 있다는 사실을 알고 방법을 사용하여 값을 얻을 수 있지만 사용 방법으로 그것을하고 싶은

가능합니까? 하나

return jsonObj[key]; 
+0

당신은 보통 '평가를 사용하지 말아야합니다()'JSON을 구문 분석 할 수 있습니다. [json2.js] (https://github.com/douglascrockford/JSON-js/blob/master/json2.js)를 사용하십시오 (구식 브라우저에 필요합니다. 최신 브라우저에서는 아무 것도하지 않으며 기본 JSON 지원은) 그리고 나서'JSON.parse ('...')'대신에! – ThiefMaster

답변

5

:

+0

문제는 평가입니다. JSON.parse를 사용하여 문제가 해결되었습니다. 감사 Sirko – StrouMfios

0

당신은 배열과 같은 개체에 액세스 할 수있는 올바른 방법을 사용하여 JSON을 구문 분석 eval을 사용하지 마십시오 :

var jsonObj = JSON.parse('[{"key1":"value1","key2":"value2"}]'); 

을 그리고 당신의 방법은 다음과 같을 수 있습니다

function getPropertyValue(key){ 
return jsonObj[ key ]; 
} 
+0

나는 이것을했지만 작동하지 않았다. – StrouMfios

+0

문제는 평가였다. JSON.parse로 시도해 보았고 문제가 해결되었습니다. 응답을 주셔서 감사합니다 – StrouMfios

+0

그것에 대한 평가판을 사용하지 마십시오, 당신을 위해 jsfiddle 데모를 만들었습니다. http://jsfiddle.net/aPBFh/ – antyrat

0

jsonObj.key가 작동하면 키를 매개 변수화 할 수 있습니다 :

function getPropertyValue(key) 
{ 
    return jsonObj[key]; 
} 
0

이 시도 :

function getPropertyValue(key){ 
return jsonObj[key]; 
} 

alert(getPropertyValue("key1")); //will alert value1