[
    {
        "_id": "557f27522afb79ce0112e6ab",
        "endereco": {
            "cep": "asdasd",
            "numero": "asdasd"
        },
        "categories": [],
        "name": "teste",
        "hashtag": "teste"
    }
]

无错误返回 nil :
var json = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.AllowFragments, error: &erro) as? NSDictionary

最佳答案

它返回 nil 没有错误,因为它不是失败的 JSON 解析。由于结果对象作为字典的条件类型转换,它失败了。该 JSON 不代表字典:它是一个包含一项的数组(恰好是字典)。外部的 [] 表示一个数组。因此,当您解析它时,您希望将其转换为 NSArray

例如,在 Swift 1.2 中,您可以:

if let json = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error) as? NSArray, let dictionary = json.firstObject as? NSDictionary {
    println(dictionary)
} else {
    println(error)
}

或者您可以将其转换为字典数组:
if let json = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &error) as? [[String: AnyObject]], let dictionary = json.first {
    println(dictionary)
} else {
    println(error)
}

关于ios - NSJSONSerialization.JSONObjectWithData 返回 nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30858088/

10-16 11:01