Я уже делал JSONDecoder для GitHub API раньше, но мне нужно было только имя пользователя и список репозиториев, но теперь мне нужны подробности о конкретный репозиторий
Есть моя функция для декодирования JSON:
Код: Выделить всё
func getMoreInfo() -> MoreInfo {
var moreInfo = MoreInfo(name: "", moreInfoDescription: "", contributorsURL: "", stargazersCount: 0, language: "", forksCount: 0, license: License(key: "", name: ""), topics: [])
if let url = URL(string: "https://api.github.com/repos/allegro/typescript-strict-plugin"){
URLSession.shared.dataTask(with: url) { data, responde, error in
if let data = data {
do {
moreInfo = try JSONDecoder().decode(MoreInfo.self, from: data)
} catch let error {
print(error)
}
}
}.resume()
}
return moreInfo
}
Код: Выделить всё
let name, moreInfoDescription: String
let contributorsURL: String
let stargazersCount: Int
let language: String
let forksCount: Int
let license: License
let topics: [String]
enum CodingKeys: String, CodingKey {
case name
case moreInfoDescription = "description"
case contributorsURL = "contributors_url"
case stargazersCount = "stargazers_count"
case language
case forksCount = "forks_count"
case license, topics
}
}
struct License: Codable {
let key: String
let name: String
}
Скажите, пожалуйста, что я делаю не так
Подробнее здесь: https://stackoverflow.com/questions/706 ... pi-swift-5
Мобильная версия