【发布时间】:2017-07-07 09:15:29
【问题描述】:
我的 Lambda 函数的部分响应对象是一个包含 3 个数组的对象。对于任何给定的函数实例,只有其中一个具有任何内容。我使用了@JsonInclude 注释(我尝试在类级别使用它,在属性或getter 之上)告诉ObjectMapper 在创建响应时忽略空数组。这项工作在我的本地版本中发现,响应仅包含一个包含数据的数组,但是当我将其部署到我的实际 AWS Lambda 函数时,注释被忽略并且响应包含 3 个数组,其中 2 个是空的。代码如下:
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
public class PcIODataSetString {
@JsonInclude(Include.NON_EMPTY)
private EventDef[] ttEventDefs;
@JsonInclude(Include.NON_EMPTY)
private EventTag[] ttEventTags;
@JsonInclude(Include.NON_EMPTY)
private EventObj[] ttEventObjs;
//getters and setters
}
根据我的阅读,我认为这可能是版本问题,因为我使用的是 jackson-annotations-2.6.0,也许 AWS 使用 1.x 版本的 Lambda 函数?有什么办法可以强制 AWS 使用相同版本的 jackson? 2.6.0 jackson jar 存在于捆绑在我的 jar 中的 AWS SDK 库中。
【问题讨论】:
标签: java amazon-web-services jackson aws-lambda