ios - 如何使用SwiftyJSON读取数组中的JSON数据?

标签 ios json uitableview swifty-json

刚刚向我介绍了在我的iOS应用程序中使用JSON数据。我使用了一项服务来解析网站中的JSON数据,并且希望对该数据进行解码,以UITableView显示给我的用户。我的JSON数据如下所示:

{
  "success": true,
  "outputScenario": "Default",
  "data": {
    "collection": [
      {
        "teamName": "Gulf Coast Monarchs, FL",
        "teamW": "10",
        "teamL": "0",
        "teamT": "0",
        "teamPct": "1.000",
        "teamGB": "-",
        "teamGP": "10",
        "teamRA": "10",
        "teamDivision": "10-0-0"
      },
      {
        "teamName": "Ohio Nationals, OH",
        "teamW": "9",
        "teamL": "1",
        "teamT": "0",
        "teamPct": ".900",
        "teamGB": "1.0",
        "teamGP": "10",
        "teamRA": "20",
        "teamDivision": "9-1-0"
      },      {
        "teamName": "Mount Kisco Chiefs, NY",
        "teamW": "0",
        "teamL": "8",
        "teamT": "0",
        "teamPct": ".000",
        "teamGB": "8.0",
        "teamGP": "8",
        "teamRA": "108",
        "teamDivision": "0-8-0"
      }
      {
        "teamName": "Mount Kisco Chiefs, NY",
        "teamW": "0",
        "teamL": "8",
        "teamT": "0",
        "teamPct": ".000",
        "teamGB": "8.0",
        "teamGP": "8",
        "teamRA": "108",
        "teamDivision": "0-8-0"
      }
    ]
  },

请记住,我已经裁剪了JSON中提供的大量数据,因此很容易查看。

我想尽可能地使用SwiftyJSON解码此数据,以便可以将其显示在UITableView中给我的用户。目前,UITableView将在team name中显示UITableView.textLabel.text,在teamW中显示teamLUITableView.detailTextLabel.text。如何使用SwiftyJSON解码此数据?我正在努力弄清楚如何解码这种类型的结构。我想使用我创建的模型:
struct Standing: Decodable {

var teamName: String
var teamW: Int
var teamL: Int
var teamT: Int
var teamPct: Int
teamGB: Int
teamGP: Int
teamRA: Int
teamDivision: String

}

最佳答案

为什么要使用SwiftyJSON来使用Decodable

您的结构中的类型是错误的,因为所有值都是String。而且您还需要其他两个父对象结构。

struct Root: Decodable {
    let success : Bool
    let outputScenario : String
    let data : TeamData
}

struct TeamData: Decodable {
    let collection : [Standing]
}

struct Standing: Decodable {
    let teamName, teamW, teamL, teamT: String
    let teamPct, teamGB, teamGP, teamRA: String
    let teamDivision: String
}

解码数据,Standing数组位于变量standings中。
do {
    let result = try JSONDecoder().decode(Root.self, from: data)
    let standings = result.data.collection
} catch {
    print(error)
}

关于ios - 如何使用SwiftyJSON读取数组中的JSON数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61066558/

相关文章:

ios - 如何使用 Objective-C 发送带有 HTTP HEADERS 和 FILE 的 PUT 请求?

android - Cordova 在 WebView 中单击通过 WhatsApp 共享

objective-c - 射击失败

Swift 中的 JSON 数据序列化

ios - 关于绘制高亮 UITableViewCell 的问题

ios - 如何在类型扩展方法中实例化类型?

json - 为蛇形 ADT 配置了 JsonCodec

python从onenote响应字符串解析文本

ios - 如何在 Swift 的表格 View 中添加 AdMob Native 广告(使用 Storyboard)

ios - Swift 中新添加的 UITableView 单元格的行为不一致