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 读取本地文件的主要内容,如果未能解决你的问题,请参考以下文章

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

无法使用 SwiftyJSON 链接到本地​​文件

SwiftyJSON 读取文件 - null

Android读取本地json文件的方法

如何用angularjs读取本地json

javascript如何读取本地json文件