【问题标题】:Javascript parse JSON string [closed]Javascript解析JSON字符串[关闭]
【发布时间】:2014-01-04 15:00:29
【问题描述】:

伙计们,DynamoDB 调用返回一个 JSON 对象,我要对其进行解析,并获取密码哈希字段

jsonString = JSON.stringify(data)
console.log(jsonString)

输出:

{"Count":1,"Items":[{"token":{"S":"token"},"uid":{"S":"33c02130-66b5-11e3-bdb0-7d9889f293b5"},"password":{"S":"$2a$10$ervzJ.DWjHOXRtJSugTaWuquI2OvPLyipa4YXecc/2KdQnmhrHxr6"},"username":{"S":"foo"},"plate":{"S":"dinner"},"name":{"S":"Test Name"},"server":{"S":"bar"}}]}

我将如何解析这个字符串,并检索“密码”字段? 以下代码不起作用:

console.log(jsonString.password)
console.log(jsonString.uid)

以下返回未定义:

console.log(data.password);

谢谢!

【问题讨论】:

  • @PSL 不幸的是这不起作用,我回来了'未定义'
  • data.Items[0].password?
  • @Clive,更近一点! { S: '$2a$10$ervzJ.DWjHOXRtJSugTaWuquI2OvPLyipa4YXecc/2KdQnmhrHxr6' }
  • data.Items[0].password.S 然后 :)
  • 如果你不把它串起来,它可能会容易得多。

标签: javascript json node.js


【解决方案1】:

这已经是一个对象,所以你可以这样做:

var str = {"Count":1,"Items":[{"token":{"S":"token"},"uid":{"S":"33c02130-66b5-11e3-bdb0-7d9889f293b5"},"password":{"S":"$2a$10$ervzJ.DWjHOXRtJSugTaWuquI2OvPLyipa4YXecc/2KdQnmhrHxr6"},"username":{"S":"foo"},"plate":{"S":"dinner"},"name":{"S":"Test Name"},"server":{"S":"bar"}}]};

alert(str.Items[0].password.S);

【讨论】:

  • 不完全。虽然您的示例有效,但它歪曲了这里实际发生的情况。他的data 和你的str 一样,不是字符串,而是对象。他的data 对象不应像他发布的那样是stringify'd,而应按原样使用。像这样:data.Items[0].password.S.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2020-06-07
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多