2017-07-02 54 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,如果你想對如何映射響應工作更詳細,並

相關問題