首页 > 解决方案 > 如何在 Swift 4 中以整数为键解码 JSON?

问题描述

在此处输入图像描述

如您所见,右侧数据具有“7”、“8”等键......现在我知道这些不是“整数”,因为它们是字符串中的数字。但是,当我解码它们时我需要使用该键名作为变量名。但是,我们不能将数字作为变量名。

在这种情况下我该怎么办?我该如何解码?

重新创建数据集以使其没有数字作为键是否更好?但是,当人们无法控制数据集时,他们会怎么做?

整个代码太长而且无关紧要,所以我只是截屏了。如果需要,可以在此处查看 JSON 数据 https://api.myjson.com/bins/11r19i

标签: jsonswiftswift4

解决方案


您可以使用CodingKey来实现这一点。

struct bus: Codable {
    var one: String?
    var two: String?
    var three: String?
    enum CodingKeys: String, CodingKey {
        case one  = "1"
        case two = "2"
        case three = "3"
    }
}

它将解码每个内部的那些密钥case,您现在应该能够识别。


推荐阅读