这个问题在这里已有答案:
我需要将JSON解码为字典。 json具有String键,值为字符串或数字。
let decoder = JSONDecoder()
let dict = try decoder.decode([String: Any].self, from: data)
这引发了一个关于Any不可解码的异常。如果我使用[String:String],它会在需要字符串时查找有关查找数字的异常。
怎么做对了?
将any转换为model并对其进行解码
struct Swifter: Decodable {
let fullName: String
let id: Int
let twitter: URL
}
let json = """
{
"fullName": "Federico Zanetello",
"id": 123456,
"twitter": "http://twitter.com/zntfdr"
}
""".data(using: .utf8)! // our data in native (JSON) format
let myStruct = try JSONDecoder().decode(Swifter.self, from: json) // Decoding our data
print(myStruct) // decoded!!!!!
或者,如果你有儿子数据,你可以试试这个
let responseDict = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]