Swift ObjectMapper 映射具有多种类型值的数组 - 混合数字和复杂对象
Swift ObjectMapper mapping an array with multiple types of values - numbers and complex objects mixed
我有这个 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]
.[=15= 类型]
当然,这包括在您尝试访问此数组的元素时的类型转换过程。 (这很糟糕)
我有这个 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]
.[=15= 类型]
当然,这包括在您尝试访问此数组的元素时的类型转换过程。 (这很糟糕)