首页 > 解决方案 > JacksonXML 字符串序列化和反序列化的简单列表

问题描述

我有这个xml

<DeviceSettings>
        <Messages>
            <Message>1</Message>
            <Message>2</Message>
            <Message>3</Message>
        </Messages>
</DeviceSettings>

我的 Kotlin 数据类:

data class DeviceSettings(
    @JacksonXmlElementWrapper(localName = "Messages")
    @JacksonXmlProperty(localName = "Messages")
    val  messages: List<String>
)

这看起来工作正常,但我真的不明白为什么在序列化对象时它会变成这样

<DeviceSettings>
<Messages>
<Messages>1</Messages>
<Messages>2</Messages>
<Messages>3</Messages>
</Messages>
</DeviceSettings>

我也想有这样的结构:

data class DeviceSettings(
    @JacksonXmlProperty(localName = "Messages")
    val  messages: List<Message>
)

data class Message(
    val value: String,
)

但是上面会引发关于错误类型的错误

标签: javaandroidkotlinjackson-dataformat-xml

解决方案


通过解决

data class DeviceConfig(
    @JacksonXmlProperty(localName = "Messages")
    val  messages: Messages
)

data class Messages(
    @JacksonXmlElementWrapper(localName = "Messages" ,useWrapping = false)
    @JacksonXmlProperty(localName = "Message")
    val messages: List<String>
)

推荐阅读