是否有 Jackson 注释来抑制不必要的 JSON 包装?

2024-01-31

我正在序列化的类:

public class LogsDTO {

    /** The logs. */
    private List<LogDTO> logs;

    /** Meta data. */
    private Meta meta = new Meta();

    // more
}

以及生成的 JSON:

{"LogsDTO":{"logs":[{"id":11,"archived":false}],"meta":{"totalPages":0}}}

我希望我的 JSON 看起来像:

{"logs":[{"id":11,"archived":false}],"meta":{"totalPages":0}} 

有没有办法注释以便发生这种情况?

Thanks


@JsonRootName:类注释用于指示用于根值的“包装器”条目的名称(如果启用了根包装)。

杰克逊文档中说:https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations

相关 Jira 任务:http://jira.codehaus.org/browse/JACKSON-630 http://jira.codehaus.org/browse/JACKSON-6301.9及以上版本支持。

当调查@JsonRootName 的源代码 https://github.com/FasterXML/jackson-annotations/blob/d6b439abe2c2f6ad8a3398a52ac1cb65c047593d/src/main/java/com/fasterxml/jackson/annotation/JsonRootName.java,

他们评论了alwaysWrap方法。

/* * 可选的标记属性可以定义为true强迫 * 根元素的包装,无论是否全局 *“根环绕”是否启用。 *

* 请注意该值false意思是“使用默认值”, * 如果全局特性指示使用,则不会阻止包装器的使用。 * * @自 2.4 起 公共布尔值alwaysWrap() 默认 false; */

他们计划在 v2.5 上激活它

截至 2.4,一个缺失的功能是属性“alwaysWrap”,希望 * 在 2.5 中添加该功能,并将用于强制单个类型的根名称换行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有 Jackson 注释来抑制不必要的 JSON 包装? 的相关文章

随机推荐