如何在SWIFT 3中使用来自php的锯齿状数组(json数据)的JSONSerialization.jsonObject

时间:2016-10-19 05:47:44

标签: ios json dictionary swift3 nsjsonserialization

所以我从php文件中返回了一个JSON数据:

{"is_success":1,"message":"Has sync","data":[{"id":"7","customer_id":"007"}]}

我有一个快速的代码:

if var myJSON = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? [NSDictionary]
{
            for jsonDict in myJSON
            {
                 var try: String = (jsonDict["customer_id"] as? String)!
            }
}

显然,由于[NSDictionary],它不会进入if语句。我尝试了其他指南中的[String: AnyObject][NSDictionary]等等,但它还没有成功。有什么建议可以替换[NSDictionary]吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您的JSON回复类型为Dictionary而不是Array

if let myJSON = try JSONSerialization.jsonObject(with: data!, options: []) as? [String : Any] {
    //For getting customer_id try like this
    if let data = myJSON["data"] as? [[String: Any]] {
        for jsonDict in data {
            var try = jsonDict["customer_id"] as? String
        } 
    }
}

在Swift中使用Swift原生DictionaryArray代替NSDictionaryNSArray,与我在答案中使用的方式相同。