Я получаю эти данные с помощью 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
}
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]]
Подробнее здесь: https://stackoverflow.com/questions/632 ... -to-string
Мобильная версия