SwiftyJSON 读取文件 - null

Posted

技术标签:

【中文标题】SwiftyJSON 读取文件 - null【英文标题】:SwiftyJSON reading file - null 【发布时间】:2015-07-15 08:17:21 【问题描述】:

我正在尝试读取我的项目文件夹中的 j.json 文件。执行代码时我没有收到任何错误,但是我得到的不是打印出来,而是“null”。初始文件扩展名为 .rtf。

let jsonFilePath:NSString = NSBundle.mainBundle().pathForResource("j", ofType: "json")!
let jsonData:NSData = NSData(contentsOfFile: jsonFilePath as String, options: .DataReadingMappedIfSafe, error: nil)!
let json = JSON(data: jsonData)
println(json)

更新:

问题是我使用了 rtf 文件(正如提到的 here)。这是正确的代码。

let jsonFilePath:NSString = NSBundle.mainBundle().pathForResource("<INPUT FILE NAME>", ofType: "<FILE EXTENTION>")!
let jsonData:NSData = NSData(contentsOfFile: jsonFilePath as String, options: .DataReadingMappedIfSafe, error: nil)!
var error:NSError?
let json = JSON(data: jsonData, options: .AllowFragments, error: &error)
if error != nil
   println(error!.localizedDescription)
   
   else
       println(json)
       

【问题讨论】:

你检查过j.json文件的内容是一个有效的JSON吗? 这是我的初始文件。我将其名称和扩展名更改为“j.json”(不确定是否导致问题)。 dropbox.com/s/atfq1gtptrt4ojf/jsonResponse.rtf?dl=0 NSError 实例传递给error 参数,那么您可能会收到错误 【参考方案1】:

好消息第一

    你的代码是正确的 你会不会得到一个错误的jsonFilePathcontentsOfFile 会失败

坏消息

    json 格式错误?似乎没有。您的示例解析正确 我已经使用您的代码 + 您的 json 成功创建了一个应用程序,它可以正确解析。我没有收到错误消息。

从这里到哪里去?

    防御性地使用let json = JSON(data: jsonData, options: .AllowFragments, error: &amp;error) 并检查错误。这总是很好的做法。

    您使用的是哪个版本的 SwiftyJSON?

    安装 SwiftyJSON (2.2.0)

【讨论】:

以上是关于SwiftyJSON 读取文件 - null的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SwiftyJSON 框架读取本地声明的 JSON

SwiftyJSON 读取本地文件

使用 SwiftyJSON 读取本地 JSON 文件

SwiftyJSON 读取 JSON 数组问题

使用 SwiftyJSON 读取 JSON 响应的子节点

SwiftyJSON 未正确从文件初始化