Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lambda函数输出为对象_Java_Amazon Web Services_Aws Lambda - Fatal编程技术网

Java Lambda函数输出为对象

Java Lambda函数输出为对象,java,amazon-web-services,aws-lambda,Java,Amazon Web Services,Aws Lambda,我们目前收到的AWS lambda响应如下: "{\"retailers\":[{\"address\":\"a\",\"retailerId\":1}, {\"address\":\"b\",\"retailerId\":2}] ,\"status\":{\"code\":200,\"type\":\"OK\",\"message\":\"Success\"}}" 响应在API网关上使用代码片段转换为json: $util.escapeJavaScript("$input.path('$

我们目前收到的AWS lambda响应如下:

"{\"retailers\":[{\"address\":\"a\",\"retailerId\":1}, 
{\"address\":\"b\",\"retailerId\":2}]
,\"status\":{\"code\":200,\"type\":\"OK\",\"message\":\"Success\"}}" 
响应在API网关上使用代码片段转换为json:

$util.escapeJavaScript("$input.path('$')").replaceAll("\\","")
如何从lambda函数直接生成json输出,并在不使用
escapeJavaScript
函数的情况下作为响应主体

    public class GetRetailerInfo implements RequestHandler<Object, String> {

    @Override
    public String handleRequest(Object input, Context context) { 
        try{             
            JSONObject parameters=new JSONObject(input.toString());
            return APIUtil.getretailer(parameters,context).toString();
        }
        catch(Exception e){
            e.printStackTrace();
        }
        return "Unable to process the request. "+input;
    }
}
公共类GetRetailerInfo实现RequestHandler{
@凌驾
公共字符串handleRequest(对象输入,上下文){
试试{
JSONObject参数=新的JSONObject(input.toString());
返回APIUtil.getretailer(参数,上下文).toString();
}
捕获(例外e){
e、 printStackTrace();
}
返回“无法处理请求”。+输入;
}
}

通过向您提供POJO作为通用输入和输出参数
RequestHandler
实现,AWS Lambda将为您处理JSON和Java之间的序列化和反序列化。以下示例摘自《AWS Lambda开发人员指南》中的:

package example;

import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.Context; 

public class Hello implements RequestHandler<Request, Response> {

    public Response handleRequest(Request request, Context context) {
        String greetingString = String.format("Hello %s %s.", request.firstName, request.lastName);
        return new Response(greetingString);
    }
}
该方法返回一个响应对象,如下所示:

{
  "greetings": "Hello value1 value2."
}
请按照上面的链接查看完整示例,包括
请求
响应
类的实现

{
  "greetings": "Hello value1 value2."
}