2009-11-10 4 views
3

나는 json 문자열을 간단한 eval (문자열)로 객체로 변환합니다.이상한 문자가있는 Json 필드에 액세스

heres the sample of the json string: 
var json = @' 
"{ description" : { "#cdata-section" : "<some html here>" } } 
'; 
var item = eval('('+json+')'); 

그래서

item.description.#cdata-section 

내 문제는 자바 스크립트를 액세스 할 수있는 방법이 .. 필드 이름에 #을 좋아하지 않는다는 것입니다처럼 액세스하려고? 문자는 필드 식별자로 제공하는 JSON의 공식 스펙은 단순히 지정하는 동안

답변

11
item.description['#cdata-section'] 
+0

감사합니다. 이전에 item.description [1]을 시도했지만 아무 소용이 없었습니다. – Will

1

, 당신은 자바 스크립트 개체로 JSON을 구문 분석 할 때, 당신은 지금 자바 스크립트 식별자의 제한에 해당.

자바 스크립트 사양에서 식별자는 문자, 밑줄 또는 $로 시작할 수 있습니다. 후속 문자는 임의의 문자, 숫자, 밑줄 또는 $ 일 수 있습니다.

기본적으로 #은 JSON 사양에서 유효하지만 Javascript에서는 유효하지 않습니다.

5

모든 자바 스크립트 개체는 아래에있는 해시 테이블이므로 하위 기호 표기법을 사용하여 항상 요소에 액세스 할 수 있습니다.

요소 이름이 도트 표기법에 문제를 일으킬 때마다 (가변 요소 이름이나 이상한 문자가있는 문자 등) 점 대신에 문자열을 사용하십시오.

var cdata = item.description["#cdata-section"]; 
관련 문제