获取JSON时文件名/路径无效

时间:2016-10-19 11:53:33

标签: ios json swift

在我的项目导航器中,我有这个结构

-MyApp
--ViewController.swift
--AppDelegate.Swift
--Main.StoryBoard
--info.plist
--JSONFiles
---test.json
-MyAppUITests

如您所见,这是创建新的单一视图应用程序时发生的非常基本的结构。

我创建了一个名为JSONFiles的新组,并添加了一个名为test的JSON文件。

当我尝试使用以下文件获取文件时:

if let path = Bundle.main.path(forResource: "JSONFiles/test", ofType: "json") {
            do {
                let data = try NSData(contentsOf: URL(fileURLWithPath: path), options: NSData.ReadingOptions.mappedIfSafe)
                let jsonData : NSData = NSData(contentsOfFile: path)!
                allEntries = (try! JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSArray

                print(allEntries)

            } catch let error as NSError {
                print(error.localizedDescription)
            }
        } else {
            print("Invalid filename/path.")
        }

我收到错误:

  

文件名/路径无效。

如果我移动组文件夹的JSON文件并将forResource更改为" test"它工作正常,并在控制台中打印。

无论如何可以告诉我如何从文件夹中读取它?我可以在根目录中拥有所有JSON文件,但我想稍微整理一下。

由于

1 个答案:

答案 0 :(得分:0)

您必须将您的json文件包含在“Copy Bundle Ressources”中。转到您的项目目标 - >构建阶段 - >复制Bundle ressources并在那里添加你的json文件。

然后,您应该能够使用以下函数检索路径:Bundle.main.path(forResource:“test”,ofType:“json”)。