【问题标题】:Parsing JSON file using Swift使用 Swift 解析 JSON 文件
【发布时间】:2020-06-22 17:19:19
【问题描述】:

这是来自我们JSON 文件的团队的一般结构:

{"Team11":{
   "results":{
      "leg1":[
         {"g":"m","n":"Name1"}
       ],"leg2":[
         {"g":"m","n":"Name2"}
       ],"leg3":[
         {"g":"m","n":"Name3"}
       ],"leg4":[
         {"g":"m","n":"Name4"}
       ],"leg5":[
         {"g":"m","n":"Name5"}
       ],"leg6":[
         {"g":"m","n":"Name6"}
       ],"leg7":[
         {"g":"m","n":"Name7"},{"g":"m","n":"Name8"}
       ]
  },"tn":"TeamName",
  "division":"co"
} 
}

到目前为止,我们能够解析结果类别 leg1、leg2 等。到目前为止,访问括号数组中包含的信息还没有奏效。

我目前关于失败原因的想法是因为我们通过 String:Any 错误地存储了 JSON 团队。

我的另一个理论是我无法找到正确的文档。任何关于在哪里查看或提示的指针都会很大!

【问题讨论】:

  • 欢迎来到 SO。请分享一些代码并解释什么“到目前为止还没有工作”。另请参阅How to Ask
  • 我认为这篇旧帖子可能会对您有所帮助。 stackoverflow.com/questions/50562785/json-parsing-swift-4/…
  • @AlexL.Rocha 是的,可编码是正确的选择,很好的链接!
  • 请分享您尝试过但没有成功的代码。这可能只是您遍历结构的方式。

标签: ios json swift xcode parsing


【解决方案1】:

确保添加什么对您不起作用以及您尝试过什么?作为新贡献者,您需要学习如何发布问题。试试我下面的答案。

使用Codable 解析JSON,如下所示,

let welcome = try? newJSONDecoder().decode(Welcome.self, from: jsonData)


// Welcome
struct Welcome: Codable {
    let team11: Team11

    enum CodingKeys: String, CodingKey {
        case team11 = "Team11"
    }
}

// Team11
struct Team11: Codable {
    let results: [String: [Result]]
    let tn, division: String
}

// Result
struct Result: Codable {
    let g, n: String
}

注意:您的 JSON 缺少左大括号和大括号,我已在您的问题中更新了这一点。

【讨论】:

  • Codable 是我希望的工具,很好的建议!
  • @CoolHands:如果这行得通,那就太好了。投票并接受答案怎么样?
  • 我两者都做了——所以不会公开显示我的赞成票,因为我的分数太低了。再次感谢!
【解决方案2】:

您是否尝试手动解析 JSON?我不确定您的代码在哪里,但是将 JSON 字符串解析为对象的标准方法是:

let jsonData = myJSONString.data(using: .utf8)

您的 JSON 存在问题。您可以在 this link 上验证 JSON 文件。

【讨论】:

  • 下次我需要包含代码,我的错。我已经可以访问 JSON 文件并解析其中的大部分内容,只是无法接收某些嵌套元素,并且上面的 JSON 是问题区域的摘录。
  • JSON 应始终以数据形式出现,而不应以字符串形式出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多