无法在Swift中下标AnyObject类型的值

时间:2015-05-26 15:47:07

标签: json swift nsdictionary

我有这行代码,我想提取“标题”键:

failed

然而它不会让我编译,如果我收到红色的错误消息:

  

无法下标索引类型为String

的AnyObject类型的值

使用var title = jParams["title"] as! String 在日志中显示jParams的内容时,我会收到以下内容:

println(jParams)

我是Swift的新手,所以我不熟悉处理JSON来处理这类问题的细节。可能有什么不对?

INCOMING LIST PARAMETERS (jParameters)
Optional({
    title = "Example List";
    values =     (
                {
            id = 1;
            name = "Line 1";
        },
                {
            id = 2;
            name = "Line 2";
        },
                {
            id = 3;
            name = "Line 3";
        }
    );
})

1 个答案:

答案 0 :(得分:11)

在您的编辑中,您似乎正在使用SwiftyJSON。

如果情况确实如此,您可以使用SwiftyJSON的dictionaryValue属性帮助编译器知道字典中的内容:

let jParams = jdata["responseData"]["extraData"]["params"].dictionaryValue

然后,您应该能够访问您的值而无需向下转换:

let title = jParams["title"]

因为SwiftyJSON会推断出值的正确类型。