民间, 我得到了以下JSON对象,我想解析它:
{"Count":1,"Items":[{"foo":{"S":"bar"}}]}
如果我执行以下操作,我会得到foo项目的“条形码”?:
foo = JSON.stringify(result.Items)
foo = JSON.parse(foo)
console.log(foo)
fails if i try:
console.log(foo.bar)
谢谢!
答案 0 :(得分:3)
在您的示例中,您确实需要:
console.log(foo[0].foo.S); // "bar"
但我建议使用 dynamodb-marshaler
一个。因为我写了它。
B中。因为它会为您转换DynamoDb属性值,因此您不需要处理“S”类型的键。
var item = unmarshalItem(result.Items[0]);
console.log(item.foo); // "bar"
当你有多件物品退回时,甚至更光滑:
var items = result.Items.map(unmarshalItem);
items.each(function(item) { console.log(item.foo); }); // "bar"
编辑:
现在有一个DocumentClient作为aws-sdk-js
的一部分来完成这项编组工作答案 1 :(得分:2)
那是因为result.Items
没有“bar”属性 - 它是一个数组。
尝试
console.log(foo[0].foo.bar);
否则,当您首先将其字符串化时:
var foo = JSON.stringify(result.Items[0].foo);
然后
console.log(foo.bar);
应该有用。