使用keyDecodingStrategy将蛇案转换为骆驼案

时间:2019-01-03 10:16:02

标签: ios swift codable

我正在尝试使用 Codable 自动将传入的UITextView解析到我的模型中。一切正常,但后来我了解了JSON,并想使用它。它很好用,可以减少我的代码,因为我不必为模型编写_keyDecodingStrategy_枚举。

但是现在的问题是服务器发送了一个新变量。变量为 CodingKeys

我认为它将转换为 post_url_110x110 ,但事实并非如此。请帮助我进行postUrl110x110转换,或者建议在这种情况下是否应该避免自动转换。

2 个答案:

答案 0 :(得分:2)

如果使用大写X将数据模型属性从postUrl110x110重命名为postUrl110X110,它将为您工作。我知道这不是理想的解决方案,但值得注意。请查看以下示例:

struct DataItem: Codable {
    var itemId: String
    var postUrl110X110: String
}

let json = """
{
    "item_id": "abcd",
    "post_url_110x110": "https://example.org/image.png"
}
""".data(using: .utf8)!

let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase

print(try! decoder.decode(DataItem.self, from: json))

答案 1 :(得分:0)

您可以尝试使用此tool

示例输入

enter image description here

输出

enter image description here

  • 如果您需要进一步的帮助,请告诉我。