How to perform an updateItem operation with a JSON payload on a Dynamo DB table

amazon-dynamodb, java, json

Solution

Here is a snippet as to how you would do it in Javascript.

let updateExpression = 'SET ';
let expressionAttributeValues = {};

const keys = Object.keys(payload);
for (const key of keys) {
  updateExpression += `${key}=:${key},`;
  expressionAttributeValues[`:${key}`] = payload[key];
}
updateExpression=updateExpression.slice(0,-1);

let params = {  
  TableName : 'your_table_name',
  Key: {
    id: id
  }, 
  UpdateExpression : updateExpression,
  ExpressionAttributeValues : expressionAttributeValues,
  ReturnValues: "ALL_NEW"
}

db.update(params,(err, result)=>{});

Problem

The Dynamo DB document API allows put operation using a json payload ``` Item item = Item.fromJSON(payload); table.putItem(item); ``` However I couldn't find a similar way for performing an updateItem with a Json payload. Is there a Dynamo DB support for that?

Original source