【问题标题】:Parse JSON in Swift3在 Swift3 中解析 JSON
【发布时间】: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。

标签: ios json swift swift3


【解决方案1】:

首先,JSON 格式不正确。它应该像

{  
"status":"ok",
"token":"XXXXX"
}

其次,您正在尝试将字符串类型转换为 NSData,这是不可能的。问题在

(result as? Data)! 

你应该这样做:

let resultData = result.data(using: String.Encoding.utf8)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多