[英]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.