解析 json,填充集合视图 Swift 4.2



这太简单了,但我迷路了。我真的对斯威夫特还是新手。

我需要解析下载的json(Xcode项目中的本地化文件(并将数据填充到CollectionView

enum Response{
case success(Data)
case error(Error)
}
// struct follows the json
struct InformationFromJson: Decodable {
let id: Int
let name: String
}

class MYJSON {
public func downloadMYJSON(_ completion: @escaping (Response) -> ()) {
guard let bundle = Bundle(identifier: MYJSON.bundleId), let path = bundle.path(forResource: "data", ofType: "json"), let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
completion(Response.error(NSError(domain: MYJSON.bundleId, code: MYJSON.bundleErrorCode, userInfo: [NSLocalizedDescriptionKey : MYJSON.bundleError])))
return
}
completion(Response.success(data))  
}
}

那么,在不完全更改函数调用的情况下,如何解析 json?到目前为止,它已从函数下载,但我甚至看不到如何添加打印语句进行测试,而不会因为 guard 语句而出错,就像它一样。

我需要简单地填充一个cellForRowAt

我从来没有见过这样的嵌套警卫,所以它得到了我。我习惯于看到 let 语句分开,因此您可以放置 print 语句,至少查看是否正在下载或解析内容。

您可以通过传递data来解码您的json,无论您从中得到什么

let data = try? Data(contentsOf: URL(fileURLWithPath: path))     
guard let decoded = try? JSONDecoder().decode(InformationFromJson.self, from: data) else { 
return 
}

最新更新