小编asp*_*ear的帖子

Swift 根据属性值类型解码对象的 JSON 数组

如何解码不同 JSON 对象的数组,其中每个对象的相同属性告诉您使用什么类型来解码它:

let json =
"""
[
    {
        "@type": "FirstObject",
        "number": 1
    },
    {
        "@type": "SecondObject",
        "name": "myName"
    }
]
"""
Run Code Online (Sandbox Code Playgroud)

这是一些基于类似答案的代码,它大部分都可以实现,但失败了,因为它不知道 CodingKeys 的用途.data

struct FirstObject: MyData {
    var dataType: String
    var number: Int
    
    enum CodingKeys: String, CodingKey {
        case dataType = "@type"
        case number
    }
}

struct SecondObject: MyData {
    var dataType: String
    var name: String
    
    enum CodingKeys: String, CodingKey {
        case dataType = "@type"
        case name
    }
}

struct SchemaObj: Decodable
{
    var dataType: …
Run Code Online (Sandbox Code Playgroud)

json swift codable decodable

1
推荐指数
1
解决办法
1234
查看次数

标签 统计

codable ×1

decodable ×1

json ×1

swift ×1