Swift: 解析JSON, NSDictionaries的NSDictionary
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")
returns 是 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)")
}
}
我正在尝试解析带有一些标签和子标签的 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")
returns 是 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)")
}
}