@XmlRootElement与@JacksonXmlRootElement

时间:2019-07-23 08:33:19

标签: xml xml-parsing jackson jaxb xml-binding

@XmlRootElement @JacksonXmlRootElement之间的确切区别是什么?

我知道@XmlRootElement是通用的,但是当我检查包结构时,两者都是不同的。

因此使用此功能必须有一些优点和缺点。

1 个答案:

答案 0 :(得分:1)

JacksonXmlRootElement允许定义根级别的名称

  

定义序列化时用于根级对象的根元素的名称

这是添加@JacksonXmlRootElement

的原因
  

JAXB允许您覆盖根元素的名称(使用   生成XML时使用@XmlRootElement。例如,渲染此类   到XML:

     

@JsonIgnoreProperties({“ meal”,“ notMeal”,“ mealNameDisplay”})公共   MealEvent类...

     

像这样生成XML:

     

午餐...但是我希望根元素是“餐食”而不是   “ MealEvent”。

     

FWIW,我也使用@JsonTypeName(“ meal”)进行了疯狂的猜测–   没有效果。

     

已实现:现在有@JacksonXmlRootElement(其名称类似于JAXB批注,只是带有“ Jackson”前缀以减少混乱)。