使用Java将DynamoDB JSON转换为标准JSON
我需要将AWS DYNAMODB JSON转换为标准JSON对象。 所以我可以从DynamoDB JSON中删除数据类型更像是:
在DYNAMODB JSON中:
"videos": [ { "file": { "S": "file1.mp4" }, "id": { "S": "1" }, "canvas": { "S": "This is Canvas1" } }, { "file": { "S": "main.mp4" }, "id": { "S": "0" }, "canvas": { "S": "this is a canvas" } } ] to Standard JSON "videos": [ { "file": "file1.mp4" , "id": "1" , "canvas": "This is Canvas1" , "file": "main.mp4" , "id": "0" , "canvas": "this is a canvas" } ]
我在Javascript中找到了一个很好的工具,但是为了做到这一点,Java中是否有任何工具?
以下是从Dynamo JSON转换为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
您可以在aws sdk中使用ItemUtils类。 以下是使用Kotlin的示例代码:
import com.amazonaws.services.dynamodbv2.document.ItemUtils import com.amazonaws.services.dynamodbv2.model.AttributeValue fun main(args: Array) { val data = HashMap() data.put("hello",AttributeValue().withS("world")) println(data.toString()) println(ItemUtils.toItem(data).toJSON()) }
输出:
{hello={S: world,}} {"hello":"world"}
以下是一个简单的解决方案,可用于将任何DynamoDB Json转换为Simple JSON。
//passing the reponse.getItems() public static Object getJson(List> mapList) { List
这将以List>的forms生成您想要的Json。 然后使用Gson,您可以将其转换为Json格式。
Gson gson = new Gson(); String jsonString = gson.toJson(getJson(response.getItems()));
其实我找到了一个很好的例子: