无法使用JacksonXml将XML对象反序列化为数据类

vd2z7a6w  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(141)

我正在尝试反序列化此xml字符串:

val xml2 = """
  <id>3</id>
""".trimIndent()

到该数据类

@JacksonXmlRootElement(localName = "id")
data class Id(
//    @field:JacksonXmlProperty(isAttribute = true)
//    @JsonInclude(JsonInclude.Include.NON_NULL)
//    val attribute: String? = null,
    @JacksonXmlText
    val value: Int
)

但每次我试图这么做的时候

println(JacksonXml.asA<Id>(xml2))

我得到这个异常:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Invalid definition for property ''

为什么我不能使用@JacksonXmlText注解?我的目的是弄清楚如何反序列化如下所示的xml字符串:

<id attribute="Pig">3</id>

但是我甚至不能让@JacksonXmlText注解自己工作,那么有没有一种变通方法可以让我在不使用@JacksonXmlText的情况下完成同样的事情呢?

ygya80vv

ygya80vv1#

你能试试这个样品吗?它对我很有效。

@JacksonXmlRootElement(localName = "id")
data class Id(
    //Your fields
) {
  @JacksonXmlText
  val value: Int? = 0
}

相关问题