如何追加数据?
我的api为:-
[
{
"Name": "Vegetables",
"PictureModel": {
"ImageUrl": "http://example.jpeg"
}
},
{
"Name": "Fruits",
"PictureModel": {
"ImageUrl": "http://example1.jpeg"
}
}
]
用于从json提取数据
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! Array<[String:Any]>
print(json)
let type = json[0]
let name = type["Name"] as! String
let PictureModel = type["PictureModel"] as! [String:Any]
print(PictureModel)
let nameofimage = PictureModel["ImageUrl"] as! String
print(nameofimage)
self.fetchedHome.append(Categories(name: name, images: nameofimage))
self.tableview.reloadData()
} catch {
print(error)
}
}
}.resume()
然后我在tableview中得到了输出。在tableview中,我得到了第一个数据为名称蔬菜和UIImageview中的图像。
。但是第二个数据不显示。那么如何追加?如何给循环和追加
答案 0 :(得分:0)
您是否在print(json)中正确获取JSON?
如果是,那么您应该尝试如下循环“ json”:-
for (var keyAttr in json) {
let dataRow = json[keyAttr]
}
在dataRow内部,您可以获得“名称”和“ PictureModel”。
我希望它能工作。
祝一切顺利。
答案 1 :(得分:0)
使用此代码,您将在For循环中获得一个对象:-
if let data = json as? NSArray {
for data in data {
if let data = data as? [String: AnyObject] {
//Here you will get data
print("Name", data["Name"])
}
}
}
答案 2 :(得分:0)
pidof node