Я знаю, что это было рассмотрено в других вопросах, но я следил за ними и все еще в тупике. Вот моя структура JSON:
{
"FindBoatResult": {
"num_boats": 10,
"boat": [
{
"num_segments": 1,
"segments": [
{
"ident": "String",
"origin" : {
"code" : "String"
},
},
]
}
и т. д. ... но это так глубоко, как идет структура. в каждом ответе JSON есть несколько возвратов «сегментов». В Swift у меня есть этот код.
struct Result : Decodable {
let FindBoatResult : FindBoatResult
}
struct FindBoatResult : Decodable {
let boats : Boats
let num_boats : Int
}
struct Boats : Decodable {
let segments : [Segments]
}
struct Segments : Decodable {
let ident : String?
let origin : Origin
}
struct Origin : Decodable {
let code : String
}
func getBoats() {
let urlString = "http://myApi"
guard let url = URL(string: urlString) else { return }
URLSession.shared.dataTask(with: url) { (data, response, err) in
guard let data = data else {return}
let dataAsString = String(data: data, encoding: .utf8)
//print(dataAsString)
do {
let boats = try
JSONDecoder().decode(FindBoatResult.self, from: data)
print(boats)
} catch {
print(err)
}
}.resume()
}
Это терпит неудачу и выдает ошибку, но ошибка печатается как ноль ... поэтому я не могу сказать, что мне не хватает. dataAsString выводит JSON, как и ожидалось, поэтому я знаю, что «данные» — это хорошо.
print(error)
- person Vini App   schedule 27.10.2017dataTask
, я бы дал ей уникальное имя, например.do { ... } catch let parseError { print(parseError) }
. - person Rob   schedule 27.10.2017