Swift ObjectMapper映射一个具有多种类型值的数组-数字和复杂对象混合



我有这个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]

当然,每当您试图访问此数组的元素时,这包括类型转换过程。(这很糟糕(