【问题标题】:Correct way to place and handle .json file in Xcode在 Xcode 中放置和处理 .json 文件的正确方法
【发布时间】:2015-12-28 12:10:11
【问题描述】:

我刚开始学习 Swift 和 xcode,我面临的第一个问题是我应该如何以及在哪里放置 json 文件?以及如何使用这些文件?我应该将 .json 文件放在 Assets 文件夹中吗?由于我觉得这很困难,我很想听听您的一些提示或示例!

【问题讨论】:

    标签: json xcode swift


    【解决方案1】:

    您可以添加empty file,选择syntax coloring 作为JSON 并粘贴您的json 文本。即使没有格式化,也可以通过全选文本并按Ctrl + I来格式化。

    【讨论】:

      【解决方案2】:

      请查看下图以检查文件的放置位置。 我建议你创建一个组并在其中添加文件。

      之后,查看以下内容以使用该文件。

      编辑:如果对任何人有帮助,这是 Swift 5 的更新代码。

          let path = Bundle.main.path(forResource: "filename", ofType: "json")
          let jsonData = try? NSData(contentsOfFile: path!, options: NSData.ReadingOptions.mappedIfSafe)
      

      【讨论】:

      • 谢谢卡拉!我可以再问一个问题吗?使用什么或如何从 jsonData 读取 json 数组或字符串?
      【解决方案3】:

      我在 2019 年 9 月是如何做到的...

      1) 在 Xcode 中,创建一个Empty 文件。给文件一个.json后缀

      2) 输入或粘贴您的 JSON

      3) 点击Editor -> Syntax Coloring -> JSON

      4) 在文件中,突出显示 JSON,点击 ctrl + i 缩进

      5) import SwiftyJSON 使用 Cocoapods

      6) 在您的 ViewController 中,编写...

      guard let path = Bundle.main.path(forResource: "File", ofType: "json") else { return }
      
      let url = URL(fileURLWithPath: path)
      
      do {  
      
          let data = try Data(contentsOf: url)
      
          let json = try JSON(data: data)
      
      } catch {
      
          print(error)
      }
      

      注意- "File" 是您创建的文件的名称,但不包括.json 后缀

      有关更多信息,请参阅 SwiftyJSON GitHub 页面 - https://github.com/SwiftyJSON/SwiftyJSON

      【讨论】:

      • 描述性和出色的答案
      【解决方案4】:
      var location = "test"
      var fileType = "json"
      if let path = Bundle.main.path(forResource: location, ofType: fileType) {
              do {
                  let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .alwaysMapped)
                  let jsonObj = JSON(data: data)
                  if jsonObj != JSON.null {
                  }
              } catch let error {
                  print(error.localizedDescription)
              }}
      

      【讨论】:

        【解决方案5】:

        根据您的要求,您想从该 json 文件中读取 json。

        我为此使用 SWIFTY JSON 库。

        在该链接下方查找

        https://github.com/SwiftyJSON/SwiftyJSON

        将此库添加到您的项目中。

        添加后,现在查看以下代码:-

        let json = JSON(data: jsonData!)
        for (index, subjson): (String, JSON) in json{
            let value = subjson["key"].stringValue
        }
        

        【讨论】:

          猜你喜欢
          • 2013-04-21
          • 1970-01-01
          • 2012-06-27
          • 2015-05-04
          • 1970-01-01
          • 1970-01-01
          • 2011-11-29
          • 1970-01-01
          • 2015-01-17
          相关资源
          最近更新 更多