【问题标题】:Swift Vapor: How to read a JSON file?Swift Vapor:如何读取 JSON 文件?
【发布时间】:2019-01-18 15:27:37
【问题描述】:

我正在使用 Vapor,它是用于创建 Web 服务器的服务器端 Swift 4 框架。我有一个要应用的迁移,它从 JSON 文件中读取;但是,我在此看到的大多数(如果不是全部)Swift 教程都表明使用 Bundle,据我所知,在开发服务器端 swift 应用程序时不可用,这意味着这样的尝试不起作用:

if let path = Bundle.main.url(forResource: "myFile", withExtension: "json") {
...

这引出了一个问题,给定一个相对文件路径,我如何使用服务器端 Swift 读取文件?

【问题讨论】:

  • 尝试使用 Data(contentsOf: "URL TO FILE") 方法,看看是否有帮助
  • @kathayatnk 试试看,它似乎想要一个在 Build/Products/Debug 目录中的路径,并且没有任何东西可以匹配。
  • 我怀疑您正在使用 xcode 运行代码。尝试使用终端它会为您提供项目文件夹的路径,然后您可以将所需的路径附加到资源

标签: swift vapor


【解决方案1】:

我傻了。 Vapor 公开了一个DirectoryConfig 对象,您可以从中检索应用程序的工作目录。要解析一个文件,它就变成了:

let directory = DirectoryConfig.detect()
let configDir = "Sources/App/Configuration"

do {
    let data = try Data(contentsOf: URL(fileURLWithPath: directory.workDir)
        .appendingPathComponent(configDir, isDirectory: true)
        .appendingPathComponent("myFile.json", isDirectory: false))

    // continue processing

} catch {
    print(error)
}

【讨论】:

  • app.directory.workingDirectory 可用于 Vapor 4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 2021-11-13
  • 2018-02-04
  • 2017-12-18
  • 2018-10-23
  • 1970-01-01
相关资源
最近更新 更多