json数据快速返回nil

Posted

技术标签:

【中文标题】json数据快速返回nil【英文标题】:json data return nil in swift 【发布时间】:2015-10-27 08:07:35 【问题描述】:

当我集成restful api时它返回错误

可选(错误域=NSCocoaErrorDomain Code=3840 "操作 无法完成。 (Cocoa 错误 3840。)”(JSON 文本未开始 带有数组或对象以及允许未设置片段的选项。) UserInfo=0x17046c680 NSDebugDescription=JSON 文本不是以 数组或对象以及允许未设置片段的选项。)

你能告诉我为什么会这样吗?我快速编码。请检查以下代码行:

var jsonResponse  = NSJSONSerialization.JSONObjectWithData(ihelper.responseData!, options: NSJSONReadingOptions.AllowFragments, error: &error) as AnyObject? as? NSArray

【问题讨论】:

您能在这里提供您的响应数据吗?你能检查它是 JSON 格式吗? ... as AnyObject? as? NSArray 那是什么? 【参考方案1】:

如果您不知道它是以字典还是数组开头,您最好通过在线 JSON 查看器,您可以在其中粘贴您的 json 响应并识别数据。

如果json以Dictionary开头(在json响应中Dictioanry以....开头),则需要使用

  if let jsonResponse: NSDictionary = NSJSONSerialization.JSONObjectWithData(ihelper.responseData!, options: NSJSONReadingOptions.AllowFragments, error: &error) as? NSDictionary
  
     println("Response are\(jsonResponse)")
  

如果json以Array开头(在json响应中Array以[....]开头),则需要使用

  if let jsonResponse: NSArray = NSJSONSerialization.JSONObjectWithData(ihelper.responseData!, options: NSJSONReadingOptions.AllowFragments, error: &error) as? NSArray

  
     println("Response are\(jsonResponse)")
  

【讨论】:

以上是关于json数据快速返回nil的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 中显示 nil 的 JSON 响应

python json快速解析命令

golang 快速解析api 返回的data数据

Mac-json数据快速转成plist数据

如何快速解码熊猫数据帧转储的json

用 JavaScript 中的 JSON 数据动态填充表格的快速方法