【问题标题】:Jackson XmlMapper serialize nested object @JacksonXmlProperty(isAttribute = true) doesn't work correctlyJackson XmlMapper 序列化嵌套对象@JacksonXmlProperty(isAttribute = true) 无法正常工作
【发布时间】:2020-09-03 16:19:09
【问题描述】:

我对 Jackson 序列化嵌套对象有疑问。

@Data
@AllArgsConstructor
@NoArgsConstructor
@JacksonXmlRootElement(localName = "A")
public class A {
    @JacksonXmlProperty(isAttribute = true)
    private String Iee;

    @JacksonXmlProperty(localName = "B")
    private B b;
}

@Data
@AllArgsConstructor
@JacksonXmlRootElement(localName = "B")
public class B {
    @JacksonXmlProperty(isAttribute = true)
    private String Jee;
}

当我序列化这样创建的对象 A 时:

final B b = new B("attribute B value");
final A a = new A("attribute A value", b);
final XmlMapper xmlMapper = new XmlMapper();
final String xml = xmlMapper.writeValueAsString(a);

我想要这个结果:

<A Iee="attribute A value">
    <B Jee="attribute B value" />
</A>

但我明白了:

<A Iee="attribute A value">
    <B Jee="attribute B value">
        <Jee>attribute B value</Jee>
    </B>
</A>

我搜索但我在谷歌上没有找到任何相关信息。 有什么想法吗?

最好的问候,

【问题讨论】:

    标签: xml serialization jackson nested xmlmapper


    【解决方案1】:

    它正在使用 javafollowing maven 的依赖项:

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.12</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
                <version>2.11.0</version>
            </dependency>
    

    【讨论】:

      【解决方案2】:

      我发现了错误。

      @Data
      @AllArgsConstructor
      @JacksonXmlRootElement(localName = "B")
      public class B {
          @JacksonXmlProperty(isAttribute = true)
          private String jee;
      }
      

      当 Jee 以大写字母开头时,它不起作用。 当 jee 以小写字母开头时,它可以工作。

      【讨论】:

        猜你喜欢
        • 2018-02-09
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 2011-12-21
        • 1970-01-01
        相关资源
        最近更新 更多