杰克逊将 XML 属性转换为平面 JSON

Jackson transforming XML attribute to flat JSON

我有这个(模仿实际生产数据)xml需要转换成JSON如下(我用的是Jackson2.8):

<testCode code="ABC" lang="java" />

我为此准备的 POJO 如下:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Phone", propOrder = {
  "descriptions"
}
@XmlRootElement(name="phone")
public class Phone extends PhoneBase {

protected TestCode testCode;

getter()
setter();
}

测试代码如下:

XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TestCode", propOrder = {
"code"
})
public class TestCode {

protected String descriptor;

@XmlAttribute(required = true)       
protected String code;

@XmlAttribute   
protected String lang;
}

将其转换为 JSON 后,我得到以下结果:

 testCode: {
 code: "ABC",
 lang: "java"
 }

虽然我想要如下内容:

testCode: "ABC"

请注意,我忽略了任何其他属性并扁平化 "code"。另外,"code" 不需要它自己。

有人可以提出任何建议吗?我尝试了 XmlElementWrapper 但它没有用。

我能够通过在我的测试代码中提供以下方法来解决它 class:

   @JsonValue
   public String toJson() {
         return this.code;
   }

张贴它可能会对某人有所帮助。