繁体   English   中英

如何从Amazon API Gateway的API将此Dynamo DB数据解析为Android?

[英]How do I parse this Dynamo DB data into Android from an API from Amazon API Gateway?

我的代码-我正在尝试从JSON返回数据。

JSONObject count = new JSONObject(finalJson);
                JSONArray itemsArray = count.getJSONArray("Items");
                JSONObject finalObject = itemsArray.getJSONObject(0);
                String record = finalObject.getString("myid");
                String vocabulary = finalObject.getString("vocab");
                String method = finalObject.getString("method");

                return record + vocabulary + method;

JSON我正在尝试解析-Count对象,Items数组等...

{ 

   "Count":1,

   "Items":[   
      { 
        "myid":{

            "S":"1"
         },
         "vocab":{   
            "S":"print a line"
         },
         "method":{  
            "S":"system.out.println"
         }
      }
   ],
   "ScannedCount":1

如果存在固定模式,则可以通过API Gateway上的映射模板将DynamoDB JSON转换为JSON。

映射模板

#set($inputRoot = $input.path('$'))
{
    "items": [
        #foreach($elem in $inputRoot.Items) {
            "myid": "$elem.myid.S",
            "vocab": "$elem.vocab.S",
            "method": "$elem.method.S"
        }#if($foreach.hasNext),#end
    #end
    ]
}

然后,您可以将Android应用程序中API Gateway的JSON字符串解析为一个对象。

样本解析代码

public class Items {
    private List<Item> items;
    //getters and setters
}

public class Item {
    private String myid;
    private String vocab;
    private String message;
    //getters and setters
}

Items items;

ObjectMapper mapper = new ObjectMapper();
jsonData = .... // from API Gateway
items = mapper.readValue(jsonData, Items.class);

此外,还有更好的方法从API Gateway的生成的android SDK中获取这些信息。 为此,您需要定义一个模型架构并将其设置为方法响应,然后在部署 API后更改此修改,就可以为该API下载一个Android SDK。

模型架构

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "item": {
        "properties": {
          "myid": {
            "type": "string"
          },
          "vocab": {
            "type": "string"
          },
          "method": {
            "type": "string"
          }
        }
      }
    }
  }
}

如果您想了解有关如何映射响应工作的更多详细信息,则可能需要逐步阅读本演练。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM