如何解决Swift ObjectMapper映射具有多种类型的值的数组-数字和复杂对象混合
我有一个要使用Swift ObjectMapper解析的JSON对象
{
"id": 1,"jsonrpc": "2.0","result": [
0,{
"data": {
"username": "myuser"
},"expires": 300,"timeout": 300,"ubus_rpc_session": "some_value"
}
]
}
我不知道如何正确解析具有混合内容的内部数组,特别是这部分:
[ 0,{ /* ... */ } ]
我试图以各种方式解决它,但是还没有找到可行的解决方案。我怀疑StaticMappable
可能有用,并且我已将其用于其他多态解析,但从未在数组项之一是数字的情况下使用。
任何帮助将不胜感激。
解决方法
恐怕使用ObjectMapper
映射此数组的唯一方法是在[Any]
中:
class Result: Mappable {
var id: Int?
var jsonrpc: String?
var result: [Any]?
required init?(map: Map) {}
func mapping(map: Map) {
id <- map["id"]
jsonrpc <- map["jsonrpc"]
result <- map["result"]
}
}
这样,对于这个特定的json响应,数组的第一个元素将为Int
类型,第二个元素将为[String: Any]
类型。
当然,每当您尝试访问此数组的元素时,这都包括类型转换过程。 (这很糟糕)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。