2017年11月27日 星期一

在 Java 中把 AWS DynamoDB 的紀錄轉成 JSON

DynamoDB 上的紀錄,都會有像是 {“S”: “XXX”} 之類的格式,用以表示它在 DynamoDB 裡的型態
不過程式在處理時,這樣很麻煩~。

實務上,AWS SDK 裡提供了一些方法,可以幫我們去掉那些多餘的東西。
具體來說,例如以下的程式碼:

ScanRequest scan = new ScanRequest();
ScanResult result = dynamodbClient.scan(scan);

Gson gson = new GsonBuilder().build();

for (Map item : result.getItems()) {
    JsonElement json = gson.toJsonTree(InternalUtils.toSimpleMapValue(item));
}

上述的程式碼,是假設對一個 DynamoDB 的表格做 scan 操作
操作完以後,要把 scan 出來的結果,用 GSON 轉成 JsonElement 的型態。
這裡透過 com.amazonaws.services.dynamodbv2.document.internal.InternalUtils 這個套件
就能夠去掉欄位型態這個東西,讓結果成為單純的 JSON。

參考資料
  1. DynamoDB - Object to AttributeValue

沒有留言: