在swift中使用数组解析json对象

时间:2015-06-14 12:57:54

标签: ios swift json.net

我有这个JsonResponse:

...id = 7;
levels =     (
            {
        name = "name";
        "unique_id" = 23223;
    },
            {
        name = "name";
        "unique_id" = d32432;
    },
            {
        name = "name";
        "unique_id" = 324;
    },
            {
        name = "name";
        "unique_id" = 234;
    }
);

我使用它来获得结果作为字典:

var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as! NSDictionary

我的问题是我如何解析水平数组 - 迭代对象并获得数组大小

2 个答案:

答案 0 :(得分:0)

基本上你只需循环它们:

if(jsonResult)
{
   let levels = jsonResult! as NSDictionary;

    for item in levels {
        let obj = item as NSDictionary

        let name = obj["name"] as NSString;
        let uniqueId = obj["unique_id"] as NSNumber;
    }
}

答案 1 :(得分:0)

我建议在使用JSON时尽可能多地使用类型安全。这是一个(未经测试的)示例,向您展示如何安全地转换数据:

if let levels = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as? [[String: AnyObject]] {
    for elem in levels {
        let name = elem["name"] as? NSString
        let uniqueId = elem["unique_id"] as? NSNumber

    }
}
相关问题