Мне не удается получить доступ к некоторым данным JSON, показывающим праздники в США. По какой-то причине вместо списка праздников я получаю сообщение «Календарь (праздники: nil)», и я не знаю почему.
Я использую Calendarifi c API, который возвращает:
{
"meta": {
"code": 200
},
"response": {
"holidays": [
{
"name": "Independence Day",
"description": "On Independence Day, Americans celebrate the anniversary of publication of the Declaration of Independence from Great Britain in 1776.",
"country": {
"id": "us",
"name": "United States"
},
"date": {
"iso": "2019-07-04",
"datetime": {
"year": 2019,
"month": 7,
"day": 4
}
},
"type": [
"National holiday"
],
"locations": "All",
"states": "All"
}
]
}
}
В моей попытке обработать данные я создал один Calendar.swift
файл, как показано здесь:
// Calendar.swift
import Foundation
struct Calendar: Codable {
var holidays: [Holidays]?
}
struct Holidays: Codable {
var name: String?
var description: String?
}
И настроил свой ViewController
, например это:
//
// ViewController.swift
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let urlString = "https://calendarific.com/api/v2/holidays?&api_key=NO_KEY_SHOWN_FOR_POST&country=US&year=2019&month=7&day=4"
let url = URL(string: urlString)
guard url != nil else {
return
}
let session = URLSession.shared
let dataTask = session.dataTask(with: url!) { (data, response, error) in
if error == nil && data != nil{
let decoder = JSONDecoder()
do {
let result = try decoder.decode(Calendar.self, from: data!)
print(result)
}
catch {
print("Error Parsing")
}
}
}
dataTask.resume()
}
}
Что происходит и почему я не могу получить результат к празднику?