解析字典的JSON数组

时间:2017-07-22 11:21:46

标签: ios json swift

我是解析JSON并使用Restful API的新手。 Whatevs,我一直在寻找这个问题,我找到了很多。但我无法理解。

我要解析的JSON是:http://jsonplaceholder.typicode.com/users

guard let url = URL(string: "http://jsonplaceholder.typicode.com/users/") else {return}
    let session = URLSession.shared

    session.dataTask(with: url) { (data, response, error) in
        if error != nil {
            print(error ?? "")
        }
        if data != nil {
            do{
                let json = try JSONSerialization.jsonObject(with: data!, options: .mutableLeaves)

                guard let idk = json as? [Dictionary<String, Any>] else {return}

               print(idk)
            }
            catch{
                print(error)
            }
        }
    }.resume()

我来到这里,我无法继续前进。例如,我想要达到ID,名称和用户名,但我不知道该怎么做。我想知道如果我想深入了解地址字典怎么办?

2 个答案:

答案 0 :(得分:3)

这是一个如何读取数据的示例:

for data: Dictionary<String, Any> in idk{
        if let address = data["address"] as? Dictionary<String, Any>{
                //here the data in address: { .. } is available
                //for example
                print(address["city"] ?? "")
        }

        //or id
        print(data["id"] ?? "")

        //username
        print(data["username"] ?? "")
}

答案 1 :(得分:1)

Alper,为什么不使用SwiftyJSON来执行此操作。下载可可豆荚并按照其Github页面上的说明进行操作:https://github.com/SwiftyJSON/SwiftyJSON

解析然后变得非常简单。看起来在Swift 4中,JSON处理得更好,并且不需要像SwiftyJSON这样的库。