【问题标题】:AWS DynamoDB QueryResult conversion to JsonAWS DynamoDB QueryResult 转换为 Json
【发布时间】:2016-06-10 20:25:07
【问题描述】:

查询结果以列表的形式出现 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】:

    我知道发生了什么。 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,

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多