JAXB 解组 xml 列表元素到单个 Kotlin 对象
JAXB unmarshalling xml list element to single Kotlin object
我按照 XML 创建嵌套的 Kotlin 对象,但它没有映射所有 TimeCycleData 元素
<TimeCycle>
<Last>
<Date>2001-06-13T01:00:00.000Z</Date>
<TimeCycleData>
<Hours type="F">123</Hours>
</TimeCycleData>
<TimeCycleData>
<Cycles>1234</Cycles>
</TimeCycleData>
<TimeCycleData>
<Land>1234</Land>
</TimeCycleData>
</Last>
</TimeCycle>
并希望映射以下 Kotlin 数据 类
data class TimeCycle(
@field:XmlElement(name = "Last")
val last: Last? = null
)
data class Last(
@field:XmlElement(name = "Date")
@field:XmlJavaTypeAdapter(value = LocalDateTimeAdapter::class, type = LocalDateTime::class)
val date: LocalDateTime? = null,
@field:XmlElement(name = "TimeCycleData")
val timeCycleData: TimeCycleData? = null
)
data class TimeCycleData(
@field:XmlElement(name = "Hours")
val hours: DurationDetails? = null,
@field:XmlElement(name = "Cycles")
val cycles: Int? = null,
@field:XmlElement(name = "Land")
val land: Int? = null
)
data class DurationDetails(
@field:XmlValue
@field:XmlJavaTypeAdapter(value = DurationAdapter::class, type = Duration::class)
val value: Duration? = null,
@field:XmlAttribute(name = "type")
val type: String = ""
)
当我解组 XML 时,只有第一个 TimeCycleData
和 Hours
被填充。如何将所有 TimeCycleData
合并为一个对象?
更新: 更正提交 xml
我猜
@field:XmlElement(name = "TimeCycleData")
val timeCycleData: TimeCycleData? = null
应该以某种方式声明
@field:XmlElement(name = "TimeCycleData")
@field:XmlElementWrapper(name = "TimeCycleInfo")
val timeCycleInfo: List<TimeCycleData>? = null
.
我按照 XML 创建嵌套的 Kotlin 对象,但它没有映射所有 TimeCycleData 元素
<TimeCycle>
<Last>
<Date>2001-06-13T01:00:00.000Z</Date>
<TimeCycleData>
<Hours type="F">123</Hours>
</TimeCycleData>
<TimeCycleData>
<Cycles>1234</Cycles>
</TimeCycleData>
<TimeCycleData>
<Land>1234</Land>
</TimeCycleData>
</Last>
</TimeCycle>
并希望映射以下 Kotlin 数据 类
data class TimeCycle(
@field:XmlElement(name = "Last")
val last: Last? = null
)
data class Last(
@field:XmlElement(name = "Date")
@field:XmlJavaTypeAdapter(value = LocalDateTimeAdapter::class, type = LocalDateTime::class)
val date: LocalDateTime? = null,
@field:XmlElement(name = "TimeCycleData")
val timeCycleData: TimeCycleData? = null
)
data class TimeCycleData(
@field:XmlElement(name = "Hours")
val hours: DurationDetails? = null,
@field:XmlElement(name = "Cycles")
val cycles: Int? = null,
@field:XmlElement(name = "Land")
val land: Int? = null
)
data class DurationDetails(
@field:XmlValue
@field:XmlJavaTypeAdapter(value = DurationAdapter::class, type = Duration::class)
val value: Duration? = null,
@field:XmlAttribute(name = "type")
val type: String = ""
)
当我解组 XML 时,只有第一个 TimeCycleData
和 Hours
被填充。如何将所有 TimeCycleData
合并为一个对象?
更新: 更正提交 xml
我猜
@field:XmlElement(name = "TimeCycleData")
val timeCycleData: TimeCycleData? = null
应该以某种方式声明
@field:XmlElement(name = "TimeCycleData")
@field:XmlElementWrapper(name = "TimeCycleInfo")
val timeCycleInfo: List<TimeCycleData>? = null
.