从 AEM 中的 Sling 模型导出器选择性导出 JSON 数据?

问题描述 投票:0回答:1

我已经成功实现了 Sling 模型导出器,但我面临一个问题,即整个数据集(包括空值等不需要的信息)都以 JSON 格式导出。如何确保通过 AEM 中的 JSON 导出器仅共享相关数据(排除不需要的详细信息)?我是否可以应用任何特定注释来实现这种选择性数据导出,或者在这个实现级别是否可能?

这就是我的输出的样子

{“你好”:{“位置”:“浦那”,“姓名”:“约翰”,“姓氏”:“h”,“电话号码”:“空”}}

在上面的输出中,电话号码数据为空。所以,我不想导出,您可以帮忙解决这个问题吗

java aem sling-models
1个回答
0
投票

是的,可以使用

@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 注释,请浏览这里

© www.soinside.com 2019 - 2024. All rights reserved.