【发布时间】:2020-02-13 18:37:41
【问题描述】:
当尝试直接访问 JSON 对象的属性(该对象来自 MongoDB 文档)时,我得到一个未定义的值。但是, JSON.stringify() 确实为该属性生成了一个值。如何直接访问该属性而无需进行 JSON.parse(JSON.stringify()) 调用?
考虑以下代码:
console.log(p.isFinal);
console.log(p.playoffType);
console.log(JSON.parse(JSON.stringify(p)).playoffType);
这些行的输出是:
false
undefined
seed
注意:在示例中,p =
{ _id: 5da0eef8d7772b13dc58d2e1,
week: 14,
isFinal: false,
isPlayoff: true,
playoffType: 'seed',
playoffTeams: [ 4, 5 ],
teams: [] }
...所以我希望输出是:
false
seed
seed
另请注意:如果我将 p 声明为对象文字,则直接属性调用有效。只有当 p 是 MongoDB 调用的结果值时才会产生不正确的结果。
我认为这暗示了值在 MongoDB 调用中的存储方式,因为在通过 parse(stringify(p)) 调用强制执行之前,字符串类型的属性不会被识别为属性。
提前感谢您的帮助!
【问题讨论】:
-
如何发出 mongodb 请求?可以分享一下吗?
标签: javascript json mongodb stringify