JSON.parse Dynamodb

时间:2013-12-03 00:14:02

标签: javascript json amazon-dynamodb

民间,   我得到了以下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)

谢谢!

2 个答案:

答案 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);

应该有用。