Ios Swift JSON错误无法将类型为“\uu NSArrayM”(0x10b2cba88)的值强制转换为“NSDictionary”(0x10b2cd1a8)

Ios Swift JSON错误无法将类型为“\uu NSArrayM”(0x10b2cba88)的值强制转换为“NSDictionary”(0x10b2cd1a8),ios,json,swift,Ios,Json,Swift,我得到这个错误,但我不明白为什么,因为我没有使用nsarray 这是我的密码 let todo = try JSONSerialization.jsonObject(with: responseData, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: Any] 印刷体 我使用过其他API,它们工作得很好,我认为问题不在于我的API,因为它在C上工作正常 任何人都

我得到这个错误,但我不明白为什么,因为我没有使用nsarray 这是我的密码

let todo = try JSONSerialization.jsonObject(with: responseData, options: JSONSerialization.ReadingOptions.mutableContainers)
                as! [String: Any]
印刷体

我使用过其他API,它们工作得很好,我认为问题不在于我的API,因为它在C上工作正常 任何人都可以帮忙吗?

显然,响应数据包含数组而不是字典,请尝试以下操作:

let todo = try JSONSerialization.jsonObject(with: responseData) as! [[String: Any]]
如果结果的根对象是JSON对象,则可以将API调用的JSON结果强制转换为[String:Any],例如:

{
"name":"John",
"age":30,
"cars":[ "Ford", "BMW", "Fiat" ]
}
在这种情况下,API返回一个对象数组,而不是一个对象,如下所示:

[
    {
    "name":"John",
    "age":30,
    "cars":[ "Ford", "BMW", "Fiat" ]
    },
    {
    "name":"Milan",
    "age":29,
    "cars":[ "Mercedes" ]
    }
]

通过[Any]更改[String:Any],谢谢您的帮助。但是为什么它能与我的其他API一起工作呢?仅仅是因为其他API返回了不同的结果。我没有考虑数组和对象之间的差异。现在我明白了,谢谢