ios - 使用 keyDecodingStrategy 从蛇案例转换为驼案例

标签 ios swift codable

我正在尝试使用 Codable 自动将传入的 JSON 解析到我的模型中。它工作正常,但后来我了解了 _keyDecodingStrategy_,并想使用它。它运行良好并且能够减少我的代码,因为我不必为我的模型编写 CodingKeys 枚举。

但现在的问题是从服务器发送的新变量。变量是 post_url_110x110

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

最佳答案

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

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))

关于ios - 使用 keyDecodingStrategy 从蛇案例转换为驼案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54020237/

相关文章:

ios - SpriteBuilder 不发布资源

ios - 在 iOS 屏幕底部的流式迷你窗口中播放视频

ios - 使用类型方法时出错

ios - Swift - 保存 [String : Any] to NSUserDefauls 的数组

swift - 使 Swift 类具有可编码的字符或基于字符的属性

ios - 调试 iPhone Chrome

ios - unwind segue 后设置方向

应用约束后快速获取 View 边界

Swift 2.2 - 将初始化程序与类类型的可变参数一起使用

ios - 如何处理与 Swift 4 Codable 不一致的 JSON 格式?