【问题标题】:Return JSONObject with JSONArray not working in Amazon Lambda Java function使用 JSONArray 返回 JSONObject 在 Amazon Lambda Java 函数中不起作用
【发布时间】:2016-05-18 10:45:22
【问题描述】:

我创建了一个 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();
            }

        }
    }

【问题讨论】:

    标签: java amazon-web-services lambda amazon-dynamodb


    【解决方案1】:

    如果您从 Web 服务的 HTTP 请求调用此代码并在应用程序中捕获响应结果,那么您的响应应该是字符串格式(JSON 对象的字符串表示)。 获得字符串格式的响应后,将 JSON 字符串解析为 JSON 对象并执行进一步的逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 2021-05-19
      • 2020-05-31
      相关资源
      最近更新 更多