2016-05-18 7 views
0

Javaラムダ関数を1つ作成し、その関数をAmazon API gatewayにデプロイしました。Amazon Lambda Java関数でJSONArrayが機能しないJSONObjectを返します

JSONObjectを返信します。JSONArrayです。

しかし、私は応答で{ }空のJSONObjectを得ました。

応答でjsonobjetc.toString()を設定すると、それは完全に機能します。

私がJSONObjectを返すと、返信は{} JSONと返されます。

何か不足していますか?

JSONObject mainJsonObject; 

    @Override 
    public Object handleRequest(Object input, Context context) { 

     inputHashMap = (LinkedHashMap) input; 
     responseJSON = new ResponseJSON(); 
     mainJsonObject = new JSONObject(); 

     saveDataToDynamoDB(inputHashMap); 

     return mainJsonObject; 
    } 

    public void saveDataToDynamoDB(LinkedHashMap inHashMap){ 

     String login_id = (String) inputHashMap.get("login_id"); 
     String first_name = (String) inputHashMap.get("first_name"); 
     String last_name = (String) inputHashMap.get("last_name"); 

     try{ 
      DynamoDB dynamoDB = new DynamoDB(new AmazonDynamoDBClient()); 
      Table tableUserDetails = dynamoDB.getTable(USER_PROFILE_TABLE); 

      Item userProfileTableItem = new Item().withPrimaryKey("login_id", login_id) 
        .withString("first_name", first_name).withString("last_name", last_name); 

      tableUserDetails.putItem(userProfileTableItem); 

      mainJsonObject.put("status", "Success"); 
      mainJsonObject.put("message", "Profile saved successfully."); 
      mainJsonObject.put("login_id", login_id); 
      mainJsonObject.put("first_name", first_name); 
      mainJsonObject.put("last_name", last_name); 

     }catch(Exception e){ 
      try { 
       mainJsonObject.put("status", "Failed"); 
       mainJsonObject.put("message", "Failed to saved profile data."); 
      } catch (JSONException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

     } 
    } 

答えて

0

Webサービス&キャッチのHTTPリクエストアプリケーション内の応答結果から、このコードを呼び出している場合は、その後、あなたの応答は、文字列の形式(JSONオブジェクトの文字列表現)にする必要があります。 レスポンスをString形式で取得した後、JSON文字列を解析してオブジェクト&を追加します。

+0

私はすでにその方法を試みました。しかし、成功することはありません。 –

関連する問題