5

我想使用 AWS Java SDK 2.0 将编码为 Json 字符串的对象保存到 DynamoDB。

在 AWS Java SDK 1.n 中,可以AttributeValues使用Item.fromJSON(myJsonString).toAttributeValues().

虽然可以同时使用两个 SDK,AttributeValue但两个 SDK 版本(1.112.0)定义的并不相同,不能互换使用。

是否有任何 AWS 提供的或社区标准的方法可以从 json 字符串/blob 转换Map<String, AttributeValue>为 AWS Java SDK 2.0?


请注意 - 这个问题是关于如何解决AWS Java SDK 2.0的问题,而不是 AWS Java SDK 1.n 的 dynamodbv2 模型。如果您认为这个问题是重复的,请仔细检查它重复的问题/答案的 SDK 版本。

4

2 回答 2

1

将 JSON 转换为 DynamoDB 的 AttributeValue 的示例

    String productString = readFileFromResources("data/categoryFix.json");
    HashMap<String,Object> result = new ObjectMapper().readValue(productString, HashMap.class);
    Map<String, AttributeValue> attributes = InternalUtils.fromSimpleMap(result);

上面的代码运行良好,即使 InternalUtils 已被弃用。

于 2020-10-03T11:35:22.330 回答
0

InternalUtils弃用,但下面的代码可以正常工作,并且还显示了如何将其转换为PutItemResult

HashMap responseMap = objectMapper.readValue(responseBody, HashMap.class);
            Map<String, AttributeValue> attributes = InternalUtils.fromSimpleMap(responseMap);

            PutItemResult result = new PutItemResult();
            result.setAttributes(attributes);
于 2021-12-26T13:29:34.153 回答