Swift: Parsing JSON, NSDictionary of NSDictionaries



我正在尝试解析一个带有一些标记和子标记的JSON文件。我通过创建一个NSDictionary来实现这一点。由此,我从某个标签创建了一个NSDictionary。此NSDictionary包含我要解析的属性。所以我试图在NSDictionary上循环,但它不起作用。我尝试了许多变体,但它总是给我带来编译时的错误。

var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(JSONData, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
var devices:NSDictionary = jsonResult.objectForKey("devices") as NSDictionary
for device:NSDictionary in devices{
    device.objectForKey("id")
    //etc
    //etc
}

我得到以下错误:

'(key: AnyObject, value: AnyObject)' is not convertible to 'NSDictionary'

对于每条环线。之后,我也尝试过将其转换为NSDictionary,但后来出现了同样的错误。

为了澄清,这是我的json文件的一个示例:

{  
   "global":{  
      //etc
   },
   "user":{  
    //etc
   },
   "devices":[  
      {  
         "id":16108,
         //etc
      },
      {
          “id”:12310,
          //etc
      },
        //etc
},

etc显然意味着有更多的数据,这只是一个基本的纲要。我正在尝试读取设备的属性

这里的问题是objectForKey("devices")返回NSArray而不是NSDictionary

适用于我:

        var error: NSError?
        var jsonResult = NSJSONSerialization.JSONObjectWithData(jsonData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
        var devices = jsonResult.objectForKey("devices") as NSArray?
        if devices != nil {
            for device in devices! {
                var deviceId = device.objectForKey("id") as NSNumber
                println("deviceId: (deviceId)")
            }
        }

最新更新