【发布时间】:2018-02-12 21:46:23
【问题描述】:
对我来说,这似乎是一项非常简单的任务,但即使经过大量研究和尝试,我也无法让它发挥作用......
例如,我有这个 URL,据我了解,这是 JSONObject 的 api?!
如果我在浏览器中打开此链接,我会得到以下结果:
{"images":[{"imageid":"1567153","imageurl_lg":"https://cf.geekdo-images.com/images/pic1567153_lg.jpg","name":null,"caption “:“白色的 力量 瓦片","numrecommend":"6","numcmets":"0","user":{"username":"manosdowns","avatar":"1","avatarfile":"avatar_id33829.jpg"} ,"imageurl":"https://cf.geekdo-images.com/6fCr14v025ZKYhXRMnbhYR16Ta8=/fit-in/200x150/pic1567153.jpg"}],"config":{"sorttypes":[{"type":" hot","name":"Hot"},{"type":"recent","name":"Recent"}],"numitems":402,"endpage":402,"galleries":[{" type":"all","name":"All"},{"type":"game","name":"Game"},{"type":"people","name":"People" },{"type":"creative","name":"Creative"}],"categories":[{"type":"","name":"All"},{"type":"BoxFront ","name":"BoxFront"},{"type":"BoxBack","name":"BoxBack"},{"type":"Components","name":"Components"},{"type ":"自定义","name":"自定义"},{"type":"播放","name":"播放"},{"type":"Miscellaneous","name":"Miscellaneous"} ,{"type":"Mature","name":"Mature"},{"type":"uncat","name":"Uncategorized"}],"licensefilters":[{"type":"" ,"name":"Any"},{"type":"reuse","name":"复制 允许"},{"type":"commercial","name":"商业用途 允许"},{"type":"modify","name":"修改 允许"}],"datefilters":[{"value":"alltime","name":"All 时间"},{"value":"today","name":"Today"},{"value":"twodays","name":"两个 天数"},{"value":"last7","name":"最后 7 个 天数"},{"value":"last30","name":"最近 30 Days"},{"value":"year","name":"Last 365 Days"}],"filters":[{"name":"Licenses","listname":"licensefilters","type":"licensefilter"},{"name":"Category","listname":" categories","type":"tag"},{"name":"Gallery","listname":"gallery","type":"gallery"}]}}
现在我的第一次尝试是用我解析主页的方式来解析这个链接:
guard let myURL = URL(string: link) else { > print("Error: \(link) doesn't seem to be a valid URL") return } do { link = try String(contentsOf: myURL, encoding: .ascii) } catch let error { print("Error: \(error)") }
但这不起作用,因为我现在明白这是因为这是 JSON 编码的?!
我搜索了解析 JSON 并找到了一些关于编码和解码的解释,但我的问题是,在所有给出的示例中,解释都是从已经“拥有”JsonObject 的内容开始的。 我的问题是我可以在浏览器中读取 URL 的内容,但我需要 Xcode 本身中的 URL 的内容,所以我可以解析它?!
所以在我的具体情况下,我只需要“imageurl_lg”的内容
...如果我可以在 Xcode 中显示我可以在浏览器中看到的内容,我会知道该怎么做 - 但是我如何将链接的内容获取到 Xcode 中?
作为参考,我还阅读了以下说明,但无法将它们应用于我的示例... https://www.raywenderlich.com/172145/encoding-decoding-and-serialization-in-swift-4
https://grokswift.com/json-swift-4/
还有一些,但他们没有帮助我......
【问题讨论】: