尝试使用Node.js,Express和DoT解析JSON结构时出错。它似乎是在下面的JSON对象中处理特殊字符...
<td>
{{= "Overview: " + record._source.explanation.overview + " Name: " + record._source.explanation.detailed-explanation.name }}
</td>
查询的第一部分工作正常(结构中没有“ - ”字符),但是当我尝试访问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以删除'-'s。关于如何超越特殊角色的任何想法?
感谢!!!
答案 0 :(得分:2)
在访问名称不是有效javascript标识符的属性时,您需要使用方括号表示法而不是点表示法。
<td>
{{= "Overview: " + record._source.explanation.overview + " Name: " + record._source.explanation["detailed-explanation"].name }}
</td>