如何快速将 json 附加到我的数组中
Posted
技术标签:
【中文标题】如何快速将 json 附加到我的数组中【英文标题】:How can I append json to my array in swift 【发布时间】:2018-07-16 12:37:42 【问题描述】:let url = URL(string: "https://api.letsbuildthatapp.com/jsondecodable/courses")
URLSession.shared.dataTask(with: url!) (data, response, err) in
guard let data = data else return
do
let appData = try JSONDecoder().decode([App].self, from: data)
print(appData)
catch let err
print("Err", err)
.resume()
这就是我解析 json 的方式。但我想将这些解析的数据添加到我的数组中以使用它来填充 mytableview。
struct App: Decodable
var id: Int
var name: String
var apps = [App]()
这是我在控制台中打印 appData 后得到的。
[CustomTableView.App(id: 1, name: "Instagram Firebase"), CustomTableView.App(id: 2, name: "播客课程"), CustomTableView.App(id: 3, name: "中级训练核心数据"), CustomTableView.App(id: 4, name: "Kindle 基础培训")]
你能帮我理解这个概念吗,因为我是 ios 新手,为了找到答案,我进行了很多搜索。非常感谢你
这是我的全部代码
【问题讨论】:
apps.append(contentOf: appData)
就在print(appData)
之后?但是您可能还想执行tableViewreloadData()
,并在主线程中执行此操作。
你要知道json解析的基础知识就到这里了,看完你就明白了developer.apple.com/swift/blog/?id=37
非常感谢您的回答。我将搜索更多以学习基础知识
【参考方案1】:
你需要这样做
DispatchQueue.main.async
self.apps = appData
self.tableView.reloadData()
或
DispatchQueue.main.async
self.apps.append(contentsOf:appData)
self.tableView.reloadData()
【讨论】:
非常感谢您的详细回答。我解决了问题【参考方案2】:添加:
self.apps = appData
就在print(appData)
下方
【讨论】:
以上是关于如何快速将 json 附加到我的数组中的主要内容,如果未能解决你的问题,请参考以下文章