我已经成功实现了 Sling 模型导出器,但我面临一个问题,即整个数据集(包括空值等不需要的信息)都以 JSON 格式导出。如何确保通过 AEM 中的 JSON 导出器仅共享相关数据(排除不需要的详细信息)?我是否可以应用任何特定注释来实现这种选择性数据导出,或者在这个实现级别是否可能?
这就是我的输出的样子
{“你好”:{“位置”:“浦那”,“姓名”:“约翰”,“姓氏”:“h”,“电话号码”:“空”}}
在上面的输出中,电话号码数据为空。所以,我不想导出,您可以帮忙解决这个问题吗
是的,可以使用
@JSONIgnore
来实现。这是示例代码片段
@Exporter(
name = "jackson", extensions = "json", selector = "geeks",
)
@Model(adaptables = Resource.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL, resourceType = "wknd/components/hello")
public class Hello {
@ValueMapValue
private String imagesrc;
public String getImagesrc() {
return null;
}
@ValueMapValue
private String imagetitle;
@JsonIgnore
public String getImagetitle() {
return imagetitle;
}
}
{"imagetitle":"kotlin"}
该注解用于指示在 JSON 序列化和反序列化过程中应忽略特定字段或方法。它有助于排除某些属性包含在 JSON 输出中。
在上面的示例中,
imagesrc
为空,因此它不会以 JSON 格式导出。
如果你想了解 JSON 注释,请浏览这里