android - SimpleXML:反序列化项目列表
问题描述
我有这个 XML 可以使用 simpleXML 反序列化
<Content>
<Items count="2">
<Device>
<User>
<Lastname>Straw</Lastname>
<Firstname>Jim</Firstname>
</User>
</Device>
<Device>
<User>
<Lastname>Straw</Lastname>
<Firstname>John</Firstname>
</User>
</Device>
</Items>
</Content>
我在 Kotlin 中制作了这个 POJO,但它与 XML 不匹配
@Root
data class Content(@field:ElementList(entry="Device") var device: List<Device>)
@Root
data class Device(@field:Element(name="User") var user: User? = null,
@field:Element(name="InvDevice") var invDevice: InvDevice? = null)
@Root
data class User(@field:Element(name="Lastname") var lastname: String? = null,
@field:Element(name="Firstname") var firstname: String? = null)
我有一个 ElementException:元素“项目”在类中没有匹配项
解决方案
使用这里推荐的 Android Studio 中的 POJO 生成器插件,我发现了如何制作我的数据类
@Root
data class Content(@field:Element(name = "Items", required = false) var items: Items? = null)
data class Items(
@field:ElementList(name = "Device", required = false, entry = "Device", inline = true)
var deviceList: List<Device>? = null,
@field:Attribute(name="count", required = false)
var count: Int? = null
)
data class Device(@field:Element(name="User", required = false) var user: User? = null)
data class User(@field:Element(name="Lastname", required = false) var lastname: String? = null,
@field:Element(name="Firstname", required = false) var firstname: String? = null)
推荐阅读
- python - Python / Flask / Ajax:从客户端向服务器发送字典键
- opencv - 如何获取 Hi3536 Mali GPU 的 openCL 库
- django - 基于条件的Django模板迭代/循环计数
- javascript - setTimeout 只执行一次
- c# - 缺少 ViewModels 目录引用
- php - 我的简码没有出现在使用 vc_map 的 Visual Composer 中
- python - 如何在 RIDE python 机器人框架工作中使用等待条件
- python - 在值中查找 elasticsearch 响应
- java - CKEditor 5上传图片,上传图片返回什么信息?
- javascript - D3js v5尝试使用画笔在条形图中选择多个条形并将值保存到变量和表中