【问题标题】:'-' character causing express dot to crash'-' 字符导致快速点崩溃
【发布时间】:2014-11-16 09:13:47
【问题描述】:

我在尝试使用 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 以删除“-”并不是一个真正的选择。关于如何通过特殊字符的任何想法?

谢谢!!!

【问题讨论】:

标签: json node.js express dot.js


【解决方案1】:

当访问名称不是有效 javascript 标识符的属性时,您需要使用方括号表示法而不是点表示法。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多