首页 > 解决方案 > Swift Vapor:如何读取 JSON 文件?

问题描述

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

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

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

标签: swiftvapor

解决方案


傻我。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)
}

推荐阅读