如何使用 .NET 从 DynamoDB 项目中提取地图类型属性
How do I extract Map type-attributes from DynamoDB item using .NET
我已成功查询 DynamoDB 数据集并返回与主键关联的最后一项。项目数据包括以下内容:
`{
"machineID": {
"N": "1322"
},
"ts": {
"N": "1646299793339"
},
"data": {
"M": {
"average-speed": {
"N": "0"
},
"in-machine-mode": {
"N": "0"
},
"run-speed": {
"N": "40"
},
"total-packs-life": {
"N": "0"
},
"recipe-loaded-id": {
"N": "1"
},
"total-packs-shift": {
"N": "0"
},
"message-banner": {
"N": "0"
},
"ts": {
"N": "1646299793339"
}
}
}
}`
我想以 JSON 格式提取地图值,但找不到任何 instruction/tutorials 如何实现这一点。
这是查询和提取与机器号相关的最后一条记录的基本代码。
`var response = await client.QueryAsync(request);
var result = response.Items;
foreach(Dictionary<string, AttributeValue> item in result)
{
foreach(KeyValuePair<string, AttributeValue> kvp in item )
{
var attribute = kvp.Key;
var value = kvp.Value;
Console.WriteLine(attribute + " " + (value.N == null ? "" : value.N));
}
}`
输出如下:
ts 1646299793339
机器ID 1322
数据
如何获得 M 属性?如果能帮助解决我的理解,我将不胜感激。
试用见上
我花了一些时间寻找答案,并在此过程中更多地了解了 dyanamoDB 的工作原理,现在我有了一个可行的解决方案。
基本我需要将属性 key-value 对从查询转换为文档。
使用以下方法实现:
var response = await dynamoDBClient.QueryAsync(request);
var attributes = response.Items.FirstOrDefault();
var doc = Document.FromAttributeMap(attributes);
这是一个将 doc 转换为 JSON 对象的简单案例
Console.WriteLine(doc.ToJson());
也许还有别的办法?评论赞赏。
我已成功查询 DynamoDB 数据集并返回与主键关联的最后一项。项目数据包括以下内容:
`{
"machineID": {
"N": "1322"
},
"ts": {
"N": "1646299793339"
},
"data": {
"M": {
"average-speed": {
"N": "0"
},
"in-machine-mode": {
"N": "0"
},
"run-speed": {
"N": "40"
},
"total-packs-life": {
"N": "0"
},
"recipe-loaded-id": {
"N": "1"
},
"total-packs-shift": {
"N": "0"
},
"message-banner": {
"N": "0"
},
"ts": {
"N": "1646299793339"
}
}
}
}`
我想以 JSON 格式提取地图值,但找不到任何 instruction/tutorials 如何实现这一点。
这是查询和提取与机器号相关的最后一条记录的基本代码。
`var response = await client.QueryAsync(request);
var result = response.Items;
foreach(Dictionary<string, AttributeValue> item in result)
{
foreach(KeyValuePair<string, AttributeValue> kvp in item )
{
var attribute = kvp.Key;
var value = kvp.Value;
Console.WriteLine(attribute + " " + (value.N == null ? "" : value.N));
}
}`
输出如下: ts 1646299793339 机器ID 1322 数据
如何获得 M 属性?如果能帮助解决我的理解,我将不胜感激。
试用见上
我花了一些时间寻找答案,并在此过程中更多地了解了 dyanamoDB 的工作原理,现在我有了一个可行的解决方案。
基本我需要将属性 key-value 对从查询转换为文档。
使用以下方法实现:
var response = await dynamoDBClient.QueryAsync(request);
var attributes = response.Items.FirstOrDefault();
var doc = Document.FromAttributeMap(attributes);
这是一个将 doc 转换为 JSON 对象的简单案例
Console.WriteLine(doc.ToJson());
也许还有别的办法?评论赞赏。