2017-07-02 50 views
0

我的代码 - 我试图从JSON返回数据。如何从Amazon API Gateway的API中将此Dynamo DB数据解析为Android?

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我想parse-计数对象,项目阵列等..

{ 

    "Count":1, 

    "Items":[ 
     { 
     "myid":{ 

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

你想回到什么? –

+0

我想返回1的ID记录,打印一行和system.out.println。谢谢你的帮助! –

+0

无法正确理解,请粘贴您的例外输出以及您正在获取的输出内容。 –

回答

0

如果有一个固定的模式,您可以通过映射DynamoDB JSON转移到JSON API网关上的模板。

映射模板

#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 
    ] 
} 

然后,您可以解析从API网关的JSON字符串在你的Android应用程序为对象。

样本解析代码

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网关的生成Android SDK中的信息。为此,您需要定义一个模型模式并设置为方法响应,然后一旦您部署您的API更改此修改,您可以下载适用于您的API的android SDK。

模型模式

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

您可能需要阅读this step by step walkthrough,如果你想对如何映射响应工作更详细,并

相关问题