如何从JSON附加数据

时间:2018-06-29 09:39:37

标签: ios json

如何追加数据?

我的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中的图像。

。但是第二个数据不显示。那么如何追加?如何给循环和追加

3 个答案:

答案 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