![](/img/trans.png)
[英]AWS DynamoDB - converter class - “Bad request, unable to parse JSON”
[英]parse json from aws dynamodb
我正在從AWS DynamoDB接收JSON。 我遇到嵌套商品時遇到麻煩。
我正在嘗試從此JSON檢索兩個字段“ session_nr”和“ session_type_name”:
{content={S: {"session_nr":"PG8","session_name":"Title of this session","session_type_name":"blah blah name type"},}}
這就是每個記錄的顯示方式。 到目前為止,這是我使用AWS ScanResult編寫的代碼:
ScanRequest scanRequest = new ScanRequest()
.withTableName("table_name")
.withFilterExpression("field = :val")
.withProjectionExpression("content")
.withExpressionAttributeValues(expressionAttributeValues);
ScanResult scanResult = client.scan(scanRequest);
for (Map<String, AttributeValue> item : scanResult.getItems()) {
System.out.println(item);
}
這是可行的。 謝謝@notionquest
ObjectMapper mapper = new ObjectMapper();
for (Map<String, AttributeValue> item : scanResult.getItems()) {
Map<String, Object> map = mapper.readValue(item.get("content").getS(), new TypeReference<Map<String,Object>>(){});
System.out.println(map.get("session_nr"));
}
JSON值可按以下方式獲取。 我使用了Jackson庫中的ObjectMapper
類將JSON轉換為Map。
請添加代碼以相應地處理異常。
Map<String, Object> jsonMap = objectMapper.readValue(item.get("content").getS(), Map.class);
System.out.println(jsonMap.get("session_nr"));
System.out.println(jsonMap.get("session_name"));
傑克遜依賴:-
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.1</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.