【发布时间】:2020-11-22 00:02:24
【问题描述】:
我与[[String]] 合作填充我的收藏视图单元格。
我使用 API 获取这些数据:
{
identifier: {
channel: "WorldChannel",
id: 1
},
message: {
map: "[[null,null,\"penguin\",null,\"penguin\",null,null],[null,\"penguin\",\"penguin\",\"penguin\",\"orca...ll,null,\"penguin\",null,null,null],[\"penguin\",\"penguin\",\"penguin\",null,null,null,null,null]]"
}
}
要获取我使用的地图值:
struct ResponseData: Codable {
let message: Message
}
struct Message: Codable {
let map: String
}
我尝试将map 用作[[String]],但解码给了我以下错误:
CodingKeys(stringValue: "map", intValue: nil)], debugDescription: "期望解码 Array 但找到了一个字符串/数据。"
这似乎是公平的,因为 map 的值被包裹在 " " 中,尽管里面显然是一个二维数组。
解码部分:
let jsonData = string.data(using: .utf8)!
let responseData = try! JSONDecoder().decode(ResponseData.self, from: jsonData)
mapAsString = responseData.message.map
print(maAsString!) 结果:
[[null,"penguin","orca",...],...,[..."penguin",null,null]]
我想做的是类似mapAs2DArray = mapAsString as! [[String]] 但Xcode 说它总是失败。如何更改数据类型?如何将null 替换为nil 或任何其他要操作的值?
【问题讨论】: