如何将POJO转换为dynamo db的Map <string,attributevalue =“”>。

时间:2019-04-01 12:23:36

标签: java amazon-dynamodb

我正在使用dynamodb交易。交易放置请求将 com.amazonaws.services.dynamodbv2.document.Item 作为输入参数。因此,我需要将 POJO 转换为 Map

到目前为止,我已经尝试使用Jackson将对象转换为字符串,然后将字符串转换为项目。 下面是我尝试过的代码。

        ObjectMapper objectMapper = new ObjectMapper();
        String jsonStr = null;
        try {
            jsonStr = objectMapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        Item item = new Item().withJSON("document", jsonStr);
        Map<String,AttributeValue> attributes = ItemUtils.toAttributeValues(item);
    return attributes.get("document").getM();

问题是,“设置”类型的字段在转换后返回“列表”。 有什么建议可以克服这个问题吗?

1 个答案:

答案 0 :(得分:0)

下面的代码应该可以解决您的转换问题:

Map<String, AttributeValue> valueMap = ItemUtils.toAttributeValues(item);
CustomEntity entity = dynamoDBMapper.marshallIntoObject(CustomEntity.class, valueMap);