我正在尝试解析一个带有一些标记和子标记的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)")
}
}