[英]Return JSONObject with JSONArray not working in Amazon Lambda Java function
我創建了一個Java lambda函數並將該函數部署到Amazon API gateway
。
我想用內部JSONArray
返回JSONObject
。
但我得到{ }
空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();
}
}
}
如果您從Web服務的HTTP請求調用此代碼並在應用程序中捕獲響應結果,那么您的響應應該是String格式(JSON對象的字符串表示形式)。 以String格式獲得響應后,將JSON字符串解析為JSON Object並執行進一步的邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.