AWS DynamoDB QueryResult转换为Json

问题描述 投票:1回答:1

查询结果以Map<String, AttributeValue>列表的形式出现,

要将单个Map<String, AttributeValue>转换为JSON,我找到的唯一方法是迭代映射中的每个键,并构建JSON字符串。

final ObjectNode node = JsonNodeFactory.instance.objectNode();

for (final Entry<String, AttributeValue> entry : item.entrySet()) {
    node.put(entry.getKey(), getJsonNode(entry.getValue(), depth + 1));
}

有没有更有效的方法来实现这一目标?有没有办法将dynamoDB的结果作为JSON获取。

json amazon-web-services jackson amazon-dynamodb
1个回答
0
投票

我弄清楚发生了什么。需要更新AWS dynamoDB文档。 (例如)http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScan.Query

AWS DynamoDB java api提供了3个用于执行查询,QueryResult,QuerySpec和Scan的选项。 有文档没有明确区分QueryResult / QuerySpec。它们返回不同的对象,内部表现非常不同。 QueryResult返回一个映射,该映射无法有效地转换为json。 QuerySpec返回aws ITEMS,可以快速转换为json字符串它们在文档中指出查询(通常)每个查询的最大数据返回大小为1MB,因此如果需要获取更多,则必须进行后续调用。我发现这只适用于QueryResult查询方法,该方法包含一个LastEvaluatedKey,如果有更多数据可用,它可以用来找出下一个“页面”来获取。但是,QuerySpec方法不包含LastEvaluatedKey,这使我感到困惑,然后我发现QuerySpec似乎在内部为您分配数据。我只用一个电话就可以返回4Mb,

© www.soinside.com 2019 - 2024. All rights reserved.