【发布时间】:2018-09-27 09:51:27
【问题描述】:
JSON 序列化:
var responseDict: [AnyHashable : Any]? = nil
if let anEncoding = responseString?.data(using: String.Encoding(rawValue: String.Encoding.utf8.rawValue)) {
responseDict = try! JSONSerialization.jsonObject(with: anEncoding, options: .mutableContainers) as? [String : Any]
}
我在这个函数中传递了这个 responseDict:
func apiClientDidFinishWithResponse(response: [AnyHashable : Any]? {
}
现在才意识到 responseDict 也可以是一个数组。我应该将 responseDict 保留为什么? Any, [AnyHashable : Any], [[AnyHashable : Any]] ?
【问题讨论】:
-
只需使用
Any?并在函数内部尝试可选展开为? [任何] & [AnyHashable : 任何] -
不相关但
String.Encoding(rawValue: String.Encoding.utf8.rawValue)太可怕了。您可以将其替换为.utf8。而mutableContainers在 Swift 中毫无意义。 -
@RatulSharker:让我检查一下。希望能转换成字典和数组
-
@vadian :感谢您的提示。
标签: ios swift json-serialization