【发布时间】:2019-09-01 03:06:16
【问题描述】:
我需要做一个用于搜索 iTunes API 的应用程序。
但我不能使用任何库,所以它与我习惯的不同。
有了这个网址,我应该通过软件获得“Instagram”搜索的第一个结果:“https://itunes.apple.com/search?entity=software&country=fr&limit=1&term=instagram”
我尝试用这部分代码得到结果:
let url = URL(string: "https://itunes.apple.com/search?entity=software&country=fr&limit=1&term=instagram")!
URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data else { return }
do {
let decodedResponse = try JSONDecoder().decode(iTunesResponse.self, from: data)
} catch let error {
print("Failed to load: \(error.localizedDescription)")
}
}.resume()
但它不起作用并且总是捕获错误。
这是我可以得到的 JSON:
{
"resultCount": 1,
"results": [{
"screenshotUrls": ["https://is2-ssl.mzstatic.com/image/thumb/Purple123/v4/e9/d2/bf/e9d2bf85-7c32-0ac3-cc1f-e7160abbb8d6/source/392x696bb.jpg"],
...
"userRatingCount": 1697595
}]
}
以及我使用的模型:
struct iTunesResponse: Decodable {
let resultCount: Int?
let results: [App]?
}
struct App: Decodable {
let isGameCenterEnabled: Bool?
let screenshotUrls: [String]?
...
let userRatingCount: Int?
}
我尝试解决有关此功能的其他主题的问题,但无法解决。
【问题讨论】:
-
只需执行
print(error)并将其完整输出包含在您的问题中。
标签: ios json swift parsing jsondecoder