Мне не удается правильно проанализировать этот JSON, я получаю следующую ошибку:
"keyNotFound (CodingKeys (stringValue:" GameEntries ", intValue: nil), Swift.DecodingError.Context (codingPath: [], debugDescription: "Нет значения, связанного с ключом CodingKeys (stringValue: \" GameEntries \ ", intValue: nil) (\" GameEntries \ ").", basedError: nil)) "
Я думаю, что моя проблемавероятно, из-за разбора словаря и массива, но я начинаю заблудиться.
JSON:
{
fullgameschedule = {
gameentry = (
{
awayTeam = {
Abbreviation = SEA;
City = Seattle;
ID = 123;
Name = Mariners;
};
date = "2019-03-20";
homeTeam = {
Abbreviation = OAK;
City = Oakland;
ID = 125;
Name = Athletics;
};
id = 48847;
location = "Tokyo Dome";
time = "5:35AM";
},
{
awayTeam = {
Abbreviation = CHC;
City = Chicago;
ID = 131;
Name = Cubs;
};
date = "2019-09-29";
homeTeam = {
Abbreviation = STL;
City = "St. Louis";
ID = 133;
Name = Cardinals;
};
id = 48879;
location = "Busch Stadium";
time = "3:15PM";
}
);
lastUpdatedOn = "2019-04-27 9:38:51 AM";
};
}
Мои структуры:
struct FullGameSchedule: Decodable
{
let GameEntries: GameEntries
let lastUpdatedOn: String
}
struct GameEntries: Decodable
{
let Games = [Game]()
}
struct Game: Decodable
{
let awayTeam: Team
let date: String
let homeTeam: Team
let id: Int
let location: String
let time: String
}
struct Team: Decodable
{
let Abbreviation: String
let City :String
let ID: Int
let Name:String
}
Мойпарсинг:
guard let url = URL(string: "blah") else { return }
let session = URLSession.shared
session.dataTask(with: url) { (data, response, error) in
guard let data = data else {return }
do {
let games = try JSONDecoder().decode(FullGameSchedule.self, from: data)
print(games)
//let json = try JSONSerialization.jsonObject(with: data, options: [])
//print(json)
} catch {
print(error)
}
}.resume()
Я надеюсь, что смогу включить JSON в игровой объект, чтобы затем отфильтровывать и извлекать конкретные сведения о произвольных играх в течение сезона на основе пользовательского ввода.