当前位置: 首页 > 知识库问答 >
问题:

如何在Jackson中获得“类似JAX-B”的XMLRootElement类名包装器

左丘烨烁
2023-03-14

当使用JAXB-JSON序列化pojo时,它可以将根元素名称包装在对象数据周围。例如:

@XmlRootElement(name="worker")
public class Employee {
    private int id;
    private String name; //...
}

可以给出JSON,例如:

{"工人":{"id": 1,"名称":"Ashraf"}}

使用Jackson JSON序列化有哪些方法可以实现这一点?

共有1个答案

龙星渊
2023-03-14

我找到了答案。适用于Jackson 2.2及以上版本

您需要按如下方式配置DTO类:

@JsonRootName(value = "worker")

您需要按如下方式配置jackson对象映射器:

mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);

对于旧版本,请参阅此处:使用根元素进行Jackson JSON反序列化

 类似资料:
  • 问题内容: 在Java中,我们可以使用 如何在PHP中做到这一点?我已经知道了,但是它仅适用于对象。目前,我在Active Record中工作。我需要像这样的声明。 问题答案: 从PHP 5.5开始, 您可以通过 ClassName :: class 使用类名解析。 查看PHP5.5的新功能。 如果要在类方法中使用此功能,请使用 static :: class : 对于旧版本的PHP ,可以使用g

  • 如果我试图得到 我得到错误的错误只允许类的左边的类文字。我已经搜索,仍然没有找到如何获得泛型类的类型在Kotlin。

  • 问题内容: 我正在研究一个项目,一个要求是,如果main方法的第二个参数以“ ” 开头(对于Linux),则应将其视为绝对路径(不是问题),但如果它不是以“”开头”,则它应获取该类的 当前工作路径 ,并将其附加给定的参数。 我可以通过几种方式获取类名:,和,等等。 问题是,这只会给我提供存储包的目录-即,如果我有一个存储在“ ”中的类,它将只给我“ ”,而忽略了实际存在的包名称。 有什么建议? 编

  • 我知道我可以获得包名并从完整的类名中去掉相应数量的字符,但我猜已经有人这么做了?

  • 问题内容: 您好在我的Java类Toto中,我有3个静态方法,我想知道当我处于这些方法之一时,如何在try catch bloc中获取和显示package.class.methode的名称?我在methodeA中尝试过: 但它不起作用,我怎么也可以尝试显示它?谢谢 问题答案: -将打印整个异常stracktrace-即所有方法+行号。

  • 问题内容: 我试图复制(如果可能改善)的Python 2.x的在3.x的排序行为,使双方订购类型喜欢,等如预期进行排序,并相互unorderable类型的输出中进行分组。 这是我正在谈论的示例: 我之前在此方面的尝试(使用键参数的类)从根本上被破坏了,因为它的方法是 试图比较值,以及 如果失败,则退回比较其类型的字符串表示形式 正如布伦·巴恩(BrenBarn)的出色回答所解释的那样,这可能导致不