Converting DynamoDB JSON to Standard JSON with Java

后端 未结 5 923
说谎
说谎 2020-12-16 06:36

I need to convert a AWS DYNAMODB JSON to a standard JSON object. so I can remove the data type from the DynamoDB JSON Something more like:

in DYNAMODB JSON:

5条回答
  •  温柔的废话
    2020-12-16 07:12

    Below is the complete code for converting from Dynamo JSON to Standard JSON:

    import com.amazonaws.services.dynamodbv2.document.Item;
    import com.amazonaws.services.dynamodbv2.document.internal.InternalUtils;
    import com.amazonaws.services.dynamodbv2.model.AttributeValue;
    import com.amazonaws.services.lambda.runtime.Context;
    import com.amazonaws.services.lambda.runtime.RequestHandler;
    import com.amazonaws.services.lambda.runtime.events.DynamodbEvent;
    import com.amazonaws.services.lambda.runtime.events.DynamodbEvent.DynamodbStreamRecord;
    import com.google.gson.Gson;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    /**
     * Main Lambda class to receive event stream, parse it to Survey
     * and process them.
     */
    public class SurveyEventProcessor implements
            RequestHandler {
    
        private static final String INSERT = "INSERT";
    
        private static final String MODIFY = "MODIFY";
    
        public String handleRequest(DynamodbEvent ddbEvent, Context context) {
    
            List listOfItem = new ArrayList<>();
            List> listOfMaps = null;
            for (DynamodbStreamRecord record : ddbEvent.getRecords()) {
    
                if (INSERT.equals(record.getEventName()) || MODIFY.equals(record.getEventName())) {
                    listOfMaps = new ArrayList>();
                    listOfMaps.add(record.getDynamodb().getNewImage());
                    listOfItem = InternalUtils.toItemList(listOfMaps);
                }
    
                System.out.println(listOfItem);
                try {
                   // String json = new ObjectMapper().writeValueAsString(listOfItem.get(0));
                    Gson gson = new Gson();
                    Item item = listOfItem.get(0);
    
                    String json = gson.toJson(item.asMap());
                    System.out.println("JSON is ");
                    System.out.println(json);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
    
            return "Successfully processed " + ddbEvent.getRecords().size() + " records.";
        }
    } 
    

提交回复
热议问题