Преобразовать строку в [[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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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