首页 > 解决方案 > aws-sdk,如何将 JSONArray 发送到 DynamoDB updateItem() 方法?

问题描述

我无法将 JsonArray 发送到 UpdateItemRequest 的 SetExpressionAttributeValues() 以便能够传递给 DynamoDBClient.updateItem() 方法

以下是 JsonArray ,我想将它传递给 updateItemRequest 的 SetExpressionAttributeValues() 方法。

[{"ID":"T1","Result":1},{"ID":"T2","Result":0}]

我该怎么做?

我尝试使用以下方式,

UpdateItemRequest updateItemRequest = new UpdateItemRequest();
updateItemRequest.setTableName(DYNAMODB_TABLE);
updateItemRequest.withKey(keyMap);  

Map attributeNameData = new HashMap<String,AttributeValue>();
attributeNameData.put("#c",new AttributeValue().withS("list1"));
updateItemRequest.withExpressionAttributeNames(attributeNameData);
updateItemRequest.withUpdateExpression("SET #c = list_append(#c, :vals)");

Map expressionAttributeValue = new HashMap<String,AttributeValue>();
expressionAttributeValue.put(":vals",new AttributeValue().withS(jsonOutput));
updateItemRequest.setExpressionAttributeValues(expressionAttributeValue);

但它给出的错误为

com.amazonaws.AmazonClientException: Unable to marshall request to JSON: java.lang.String cannot be cast to com.amazonaws.services.dynamodbv2.model.AttributeValue

我是 Amazon Dynamo DB 的新手,我正在使用 AWS Mobile SDK,但在 AWS 文档中找不到任何有用的东西,有人可以帮我吗?

提前致谢!

标签: amazon-web-servicesamazon-dynamodbaws-sdk

解决方案


推荐阅读