2014-04-18 2 views
0

Node.js, Express 및 DoT로 JSON 구조를 구문 분석하는 중 오류가 발생합니다. ("-"아니오 문자를 구조에) 그것은 쿼리의'-'문자가 급한 점으로 인해 충돌합니다.

<td> 
    {{= "Overview: " + record._source.explanation.overview + " Name: " + record._source.explanation.detailed-explanation.name }} 
</td> 

첫 번째 부분은 잘 작동 ... 아래의 JSON 개체에 특수 문자를 처리하는 것으로 나타납니다,하지만 난 record._source에 액세스하려고 할 때 .explanation.detailed-explanation.name 아래의 메시지와 함께 오류가 발생합니다.

undefined:2 
source.explanation.analysis + " " + record._source.explanation.detailed-explanation.name 
                    ^
ReferenceError: explanation is not defined 
    at Object.eval (eval at <anonymous> (/myapp/node_modules/express-dot/node_modules/dot/doT.js:125:11), <anonymous>:2:1715) 
    at /myapp/node_modules/express-dot/express-dot.js:23:30 
    at fs.js:266:14 
    at Object.oncomplete (fs.js:107:15) 

'-'등의 "-"문자를 벗어나려고했지만 행운이 없었습니다. 돌아가서 기본 JSON을 재구성하여 '-'을 제거하는 옵션은 아닙니다. 특수 문자를 피하는 방법에 대한 아이디어가 있습니까?

감사합니다 !!!

+0

가능한 중복 http://stackoverflow.com/questions/7122609/how-do-i-reference-a-javascript-object -property-with-a-hyphen-in-it) 및 [ "-"dash]로 JSON 속성에 액세스 할 수 없습니다 (http://stackoverflow.com/questions/13869627/unable-to-access-json-property-with). -대시) –

답변

2

유효한 자바 스크립트 식별자가 아닌 속성으로 속성에 액세스 할 때 점 표기법 대신 대괄호 표기법을 사용해야합니다.

<td> 
    {{= "Overview: " + record._source.explanation.overview + " Name: " + record._source.explanation["detailed-explanation"].name }} 
</td> 
([어떻게 내가 거기에 하이픈으로 자바 스크립트 객체 속성을 참조 함]의
관련 문제