我在两个不同的 Java AWS Lambda 函数之间传递有效的 JSON 时遇到问题。第一个函数生成 rawJson“String”,其格式如下:
rawJson: [
{
"id": 1,
"createdOn": 1535177185000,
"text": "test text"
}
]
这会传递给第二个 Lambda 函数:
request.withFunctionName(FUNCTION_NAME).withPayload(rawJson);
awsLambdaClient.invoke(request);
在第二个 Lambda 函数的开头,我打印输入对象的值:
inputObject: [{id=1, createdOn=1535177185000, text=test text}]
引号已被删除,这不再是有效的 JSON。任何尝试将此映射回我的 POJO(或者甚至让我的 Lambda 函数接受“字符串”,而不是“对象”)都会导致与 JSON 相关的异常。
为什么我的有效 JSON 在两个 Lambda 之间变得格式错误?
最佳答案
这是我的错。就像我提到的,我有一个像这样的 RequestHandler:
RequestHandler<Object, Void>
那是没有必要的。 Lambda 本身就足够智能,可以序列化和反序列化我的对象。我的代码更新为:
RequestHandler<List<MyClass>, Void>
关于java - 无法在 Lambda 函数之间传递有效的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52015333/