Я пытаюсь декодировать некоторые JSON.Вот пример JSON:
[
{
"type": "departure",
"status": "landed",
"departure": {
"iataCode": "JFK",
"icaoCode": "KJFK",
"scheduledTime": "2017-12-11T01:06:00.000",
"estimatedRunway": "2017-12-11T02:07:00.000",
"actualRunway": "2017-12-11T02:07:00.000" },
"arrival": {
"iataCode": "CVG",
"icaoCode": "KCVG",
"estimatedRunway": "2017-12-11T03:38:00.000",
"actualRunway": "2017-12-11T03:38:00.000"
},
"airline": {
"name": "Atlas Air",
"iataCode": "5Y",
"icaoCode": "GTI"
},
"flight": {
"number": "302",
"iataNumber": "5Y302",
"icaoNumber": "GTI302"
}
},
{
//Same keys as above.
},
//Etc.
]
Он начинается как массив без ключа.Затем это выполняется контейнерами JSON, которые также не имеют ключей.У меня проблемы с его разбивкой на части с использованием этого кода:
struct Dataset: Decodable {
var data: [FlightData]
init(from decoder: Decoder) throws {
var container = try decoder.unkeyedContainer()
print(container)
data = [try container.decode(FlightData.self)]
}
struct FlightData: Decodable {
var type: String //Arrival or Departure
var status: String //Flight Status
var departure: Departure
var arrival: Arrival
var airline: Airline
var flight: Flight
struct Departure: Decodable {
var iataCode: String
var icaoCode: String
var terminal: String
var gate: String
var scheduledTime: String
var estimatedTime: String
var actualTime: String
var estimatedRunway: String
var actualRunway: String
}
struct Arrival: Decodable {
var iataCode: String
var icaoCode: String
var terminal: String
var gate: String
var baggage: String
var scheduledTime: String
var estimatedTime: String
var actualTime: String
var estimatedRunway: String
var actualRunway: String
}
struct Airline: Decodable {
var name: String
var iataCode: String
var icaoCode: String
}
struct Flight: Decodable {
var number: String
var iataNumber: String
var icaoNumber: String
}
}
}
Я новичок в JSON и Swift Decodable, поэтому я немного запутался, что я делаю неправильно?Кто-нибудь знает, как я могу исправить мою проблему?Прямо сейчас я получаю предупреждение, что он ожидает массив, но он находит словарь.Поэтому я думаю, что успешно прошел первый неиспользованный контейнер, но я не могу проникнуть в него.