JSON.parse Dynamodb

Cma*_*mag 3 javascript json amazon-dynamodb

各位,我正在返回以下 JSON 对象,我想解析它:

{"Count":1,"Items":[{"foo":{"S":"bar"}}]}
Run Code Online (Sandbox Code Playgroud)

如果我执行以下操作,我会得到 foo 项目的“bar”?:

foo = JSON.stringify(result.Items)
foo = JSON.parse(foo)
console.log(foo)

fails if i try:
console.log(foo.bar)
Run Code Online (Sandbox Code Playgroud)

谢谢!

nac*_*son 6

在您的示例中,您实际上需要:

console.log(foo[0].foo.S); // "bar"
Run Code Online (Sandbox Code Playgroud)

但我建议使用dynamodb-marshaler

答:因为是我写的。

B. 因为它会为您转换 DynamoDb 属性值,因此您无需处理“S”类型键。

var item = unmarshalItem(result.Items[0]);
console.log(item.foo); // "bar"
Run Code Online (Sandbox Code Playgroud)

当您退回多件商品时,甚至会更加灵活:

var items = result.Items.map(unmarshalItem);
items.each(function(item) { console.log(item.foo); }); // "bar"
Run Code Online (Sandbox Code Playgroud)

编辑:

现在有一个DocumentClient,它作为 aws-sdk-js 的一部分执行此编组工作