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

use*_*101 5 java json jackson

我正在序列化的类:

public class LogsDTO {

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

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

    // more
}
Run Code Online (Sandbox Code Playgroud)

以及生成的 JSON:

{"LogsDTO":{"logs":[{"id":11,"archived":false}],"meta":{"totalPages":0}}}
Run Code Online (Sandbox Code Playgroud)

我希望我的 JSON 看起来像:

{"logs":[{"id":11,"archived":false}],"meta":{"totalPages":0}} 
Run Code Online (Sandbox Code Playgroud)

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

谢谢

İlk*_*kut 2

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

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

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

当调查@JsonRootName 的源代码时,

他们评论了alwaysWrap方法。

/* * 可选标记属性,可以定义为true强制 * 根元素换行,无论是否全局启用 * “根换行”。*

* 请注意, 的值false表示“使用默认值”, * 如果全局功能指示使用,则不会阻止包装器的使用。* * @since 2.4 public boolean alwaysWrap() 默认 false; */

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

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