Spring boot 将pojo字段序列化为xml时忽略xml标记

Spring boot 将pojo字段序列化为xml时忽略xml标记,spring-boot,java-8,jackson-dataformat-xml,Spring Boot,Java 8,Jackson Dataformat Xml,我正在使用jackson库将POJO映射到XML compile ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.0') 序列化时,我需要忽略一些字段。这是我的POJO课程。例如,应忽略字段lineNumber @noargsconstuctor @AllArgsConstructor @吸气剂 @XmlAccessorType(XmlAccessType.FIELD) 公共类InvoiceLineItem{ @Jac

我正在使用jackson库将POJO映射到XML

compile ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.0')
序列化时,我需要忽略一些字段。这是我的POJO课程。例如,应忽略字段
lineNumber

@noargsconstuctor
@AllArgsConstructor
@吸气剂
@XmlAccessorType(XmlAccessType.FIELD)
公共类InvoiceLineItem{
@JacksonXmlProperty(localName=“LineNumber”)
@XmlTransient
私有整数行号;
@JacksonXmlProperty(localName=“ProductCode”)
@XmlTransient
私有字符串代码;
@JacksonXmlProperty(localName=“ProductDescription”)
@XmlTransient
私有字符串描述;
}

我正在使用
@xmltransive
xmlacessortype
忽略字段。但是序列化时不会忽略用XmlTransient注释的
lineNumber
字段。

尝试添加
@JsonProperty(access=access.WRITE_ONLY)
行号
字段的注释

即使它看起来像一个JSON的东西, Jackson
XmlMapper
识别注释并做出相应的反应

编辑
XmlMapper应该支持JSON序列化的结论是以下错误推理尝试的一个例子:

  • 所有的人都是凡人
  • 苏格拉底是个凡人
  • 因此,所有的人都是苏格拉底
  • XmlMapper不是ObjectMapper周围的包装类。 它出现在ObjectMapper之后,似乎有许多共同的功能,
    就像处理一些JSON注释一样。

    谢谢,它可以正常工作。但是为什么xmlMapper可以解释@JsonProperty呢。如果是这种情况,那么所有与json相关的注释都与xmlMapper一起工作吗?在Jackson项目的历史中,ObjectMapper(用于json)排在第一位。XmlMapper似乎是在ObjectMapper之上构建的。因为XmlMapper是在ObjectMapper之上构建的,所以JsonSerialize应该像使用ObjectMapper一样使用XmlMapper。但是在我的例子中,@JsonSerialize和任何类字段之上的自定义序列化程序都不起作用。请帮我解决这个问题。