相关疑难解决方法(0)

Swift 4 JSON可解码最简单的解码类型更改方法

使用swift4的Codable协议,有很多级别的引擎日期和数据转换策略.

鉴于JSON:

{
    "name": "Bob",
    "age": 25,
    "tax_rate": "4.25"
}
Run Code Online (Sandbox Code Playgroud)

我想将它强制进入以下结构

struct ExampleJson: Decodable {
    var name: String
    var age: Int
    var taxRate: Float

    enum CodingKeys: String, CodingKey {
       case name, age 
       case taxRate = "tax_rate"
    }
}
Run Code Online (Sandbox Code Playgroud)

日期解码策略可以将基于字符串的日期转换为日期.

基于String的Float是否有某种功能

否则我一直坚持使用CodingKey引入一个String并使用计算得到:

    enum CodingKeys: String, CodingKey {
       case name, age 
       case sTaxRate = "tax_rate"
    }
    var sTaxRate: String
    var taxRate: Float { return Float(sTaxRate) ?? 0.0 }
Run Code Online (Sandbox Code Playgroud)

这种方式比我看起来需要更多的维护.

这是最简单的方式还是类似于DateDecodingStrategy用于其他类型的转换?

更新:我应该注意:我也走了超越的路线

init(from decoder:Decoder)
Run Code Online (Sandbox Code Playgroud)

但这是相反的方向,因为它迫使我为自己做这一切.

json swift swift4 codable

24
推荐指数
3
解决办法
1万
查看次数

标签 统计

codable ×1

json ×1

swift ×1

swift4 ×1