我正在使用Codables解析JSON数据。问题是我的几个编码键与变量名不同。为此,我使用了CodingKeysenum,它非常直接,但是我必须写下所有的键,我不希望这样。我只想覆盖几个键而不是全部。
这是JSON

{
   "string_one" = "some string",
   "string_two" = "some string",
   "string_three_%s" = "some string",
}

class Strings: Codable{

    var string_one: String?
    var string_two: String?
    var string_three: String?

    enum CodingKeys: String, CodingKey {
        case string_three = "string_three_%s"
    }
}

更多解释
我知道添加case string_one, string_two可以工作,但是假设我有1000个字符串,并且只想覆盖一个,我必须毫无理由地编写999个案例。在我看来这不是一件明智的事情(无缘无故地写999个案子)

最佳答案

检查模态类的正确形式。
希望你能找到解决办法

struct Welcome: Codable {
    let stringOne, stringTwo, stringThreeS: String?

    enum CodingKeys: String, CodingKey {
        case stringOne = "string_one"
        case stringTwo = "string_two"
        case stringThreeS = "string_three_%s"
    }
}

关于swift - 使用'CodingKeys'枚举仅覆盖几个JSON键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58724124/

10-13 04:56