【问题标题】:nodejs does not read JSONnodejs 不读取 JSON
【发布时间】:2015-03-14 20:17:45
【问题描述】:

这一定很明显,但我花了足够的时间:

Node express 获取在浏览器中设置的 JSON 对象。 对象名称是 dddd。

当我:

console.log(req.params.dddd);

我明白了:

{"email":"abc@def.com"} 

这正是我为 node.js 设置的内容

但是当我:

console.log(req.params.dddd.email);

我收到undefined...

我一定错过了这一点。比你对任何帮助的人都好

【问题讨论】:

  • @OliverBorchert 为什么会有所作为?它完全等同于console.log(req.params.dddd.email)
  • 使用 url 参数发送 JSON 数据不是一个很好的设计。您应该改用请求正文,或者至少使用查询字符串。

标签: javascript json node.js express


【解决方案1】:

我认为你得到一个字符串并且你错误地认为它是一个 JSON。 尝试 JSON.parse 之前。

var obj = JSON.parse( req.params.dddd);
console.log(obj.email)

【讨论】:

  • [...]JSON (JavaScript Object Notation) is a lightweight data-interchange format[...] 并作为字符串或缓冲区提供。这就是为什么您需要使用 JSON.parse 来返回一个 JavaScript 对象,该对象具有 JSON 数据所描述的结构。
【解决方案2】:
try {
    var obj = JSON.parse( req.params.dddd);
} catch (e) {
    console.log("parsing error!!!")
}
console.log(obj.email)

在使用JSON.parse 方法时始终使用try ... catch 块。

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2014-03-14
    相关资源
    最近更新 更多