簡體   English   中英

從aws dynamodb解析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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM