我有这个JSON对象,我想使用Swift ObjectMapper 解析它
{
"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]
。
当然,每当您试图访问此数组的元素时,这包括类型转换过程。(这很糟糕(