【问题标题】:Jackson transforming XML attribute to flat JSONJackson 将 XML 属性转换为平面 JSON
【发布时间】:2019-01-04 09:18:51
【问题描述】:

我有这个(模仿实际生产数据)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"

请注意,我忽略了任何其他属性并扁平化“代码”。此外,不需要“编码”它自己。

有人可以建议任何指针吗?我试过 XmlElementWrapper 但它不起作用。

【问题讨论】:

    标签: json jaxb jackson2


    【解决方案1】:

    我可以通过在我的 TestCode 类中提供以下方法来解决它:

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

    发布它可能对某人有帮助。

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 2020-03-15
      • 2021-07-23
      • 2018-12-08
      • 1970-01-01
      • 2016-08-09
      • 2016-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多