SwiftyJSON 读取本地文件
Posted
技术标签:
【中文标题】SwiftyJSON 读取本地文件【英文标题】:SwiftyJSON to read local file 【发布时间】:2015-11-15 06:58:08 【问题描述】:所以我的应用程序使用 JSON API 响应从服务器读取一些数据。由于 API 尚未准备好,我想使用存储在我的应用程序本身中的示例 JSON 文件。由于我所有的代码都使用 SwiftyJSON,所以我想在本地文件中坚持使用它。 我在 ViewDidLoad 方法中执行以下操作,不知何故,最终结果是一个空白数组。您知道我应该在此代码中更改什么以使其正常工作吗?
//Direct JSON
if let path = NSBundle.mainBundle().pathForResource("XXYYXZZfile", ofType: "json")
do
let pathAsData = try NSData(contentsOfFile: path, options: NSDataReadingOptions.DataReadingMappedIfSafe)
let json = JSON(pathAsData)
print(json)
catch
print("Some error")
【问题讨论】:
【参考方案1】:将 SwiftyJSON 与 NSData 一起使用时,您必须为 JSON 初始化程序指定“data:”参数:
let json = JSON(data: pathAsData)
否则它会尝试使用 other available initializers 并会因错误而失败,或者甚至像您的情况一样,会因输入错误和输出错误而静默失败。
【讨论】:
不。不工作。它仍然是空白的。我在他们的官方页面上看到了这个语法,之前也尝试过,它不起作用。 好的。无论如何,在使用 NSData 源时,您应该继续使用这种显式的“数据:”语法,这将避免以后产生其他错误。 // 如果您的文件没有意外包含一个空数组,那么我看不到这里会发生什么,抱歉。希望其他人发现。 JSON 有有效数据。实际上,如果我在节点服务器中复制相同的 json 文件并使用 Alamofire + SwiftyJSON 访问它,它就可以完美运行。当我尝试访问本地文件时,它以某种方式不起作用。 啊,谢谢你的信息。但这确实很奇怪。使用您的代码并添加“数据:”它在示例项目中对我有用。 真的。你介意与我分享这个项目吗?以上是关于SwiftyJSON 读取本地文件的主要内容,如果未能解决你的问题,请参考以下文章