Преобразовать строку в [[String]]IOS

Программируем под IOS
Anonymous
Преобразовать строку в [[String]]

Сообщение Anonymous »

Я работаю с [[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
}
Я пробовал работать с картой как [[String]], но декодирование выдало следующую ошибку:

CodingKeys(stringValue: "map", intValue: nil)], debugDescription: "Ожидал декодирования массива, но вместо этого обнаружил строку/данные."
Это кажется справедливым, поскольку значение карты заключено в " " хотя внутри явно двумерный массив.

Часть декодирования:

Код: Выделить всё

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 или любое другое значение для работы?

Подробнее здесь: https://stackoverflow.com/questions/632 ... -to-string

Вернуться в «IOS»