2016-05-18 10 views
0

Ich habe eine Java-Lambda-Funktion erstellt und diese Funktion auf Amazon API gateway bereitstellen.Rückgabe JSONObject mit JSONArray funktioniert nicht in Amazon Lambda Java-Funktion

Ich möchte JSONObject mit inneren JSONArray zurückgeben.

Aber ich habe { } leer JSONObject als Antwort.

Wenn ich jsonobjetc.toString() in Antwort setzen, wird das perfekt funktionieren.

Aber wenn ich JSONObject zurückgebe, werde ich leere {} JSON Antwort zurückgeben.

Fehle ich etwas?

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(); 
      } 

     } 
    } 

Antwort

0

Falls Sie diesen Code von HTTP-Anforderung eines Webdienstes & Fang fordern die Antwort in Ihrer Anwendung führt, dann in String-Format (String-Darstellung von JSON-Objekt) Ihrer Antwort sollte. Nachdem Sie die Antwort im String-Format erhalten haben, dann analysieren Sie die JSON-Zeichenfolge zu JSON-Objekt & tun Sie Ihre weitere Logik.

+0

habe ich schon so probiert. Aber nicht erhalten werden. –

Verwandte Themen