在 Swift3 中解析 JSON
Posted
技术标签:
【中文标题】在 Swift3 中解析 JSON【英文标题】:Parse JSON in Swift3 【发布时间】:2017-01-27 06:17:30 【问题描述】:使用下面的代码解析JSON,遇到问题
let result = "
status = ok;
token = XXXXX;
"
do
let json = try JSONSerialization.jsonObject(with: (result as? Data)! , options: JSONSerialization.ReadingOptions())
print("Further data \(json)")
catch
print(error)
面临以下异常:
无法将“__NSDictionaryI”(0x111789238) 类型的值转换为 'NSData' (0x1117882e8)。 (lldb)
非常感谢任何帮助。
【问题讨论】:
您是否在 google 上搜索过错误和工作示例? 您的结果已经是字典。无需使用JSONSerialization
这不是 JSON。
(结果为?数据)! -- 你不能这样转换。 “结果”是字典。你需要通过'NSData'
@NiravD 看起来 result 实际上是一个字符串,尽管它不会按原样编译多行。它也不是 JSON。
【参考方案1】:
首先,JSON 格式不正确。它应该像
"status":"ok",
"token":"XXXXX"
其次,您正在尝试将字符串类型转换为 NSData,这是不可能的。问题在
(result as? Data)!
你应该这样做:
let resultData = result.data(using: String.Encoding.utf8)
【讨论】:
以上是关于在 Swift3 中解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章