首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Decodable解码嵌套对象的数组

使用Decodable解码嵌套对象的数组
EN

Stack Overflow用户
提问于 2019-02-12 18:21:27
回答 1查看 82关注 0票数 1

我几天前开始使用Decodable,我想知道是否有可能在不创建更多模型的情况下创建模型"Car“,具有以下JSON:

代码语言:javascript
复制
{
    "cars": [
        {
            "id": 1,
            "name": "car1"
        },
        {
            "id": 2,
            "name": "car2"
        },
        {
            "id": 3,
            "name": "car3"
        }
    ],
    "pagination": {
        "page": 1,
        "offset": 20
    }
}

我找到的唯一解决方案是创建一个类似于"Response“的”包装器“模型,其中包含一个像汽车这样的属性。

有没有人能确认一下,仅仅使用"Car“模型就可以解码这个JSON?

谢谢。

诚挚的问候

EN

回答 1

Stack Overflow用户

发布于 2019-02-12 18:26:13

你可以试试

代码语言:javascript
复制
    let str = """

        {
        "cars": [
        {
        "id": 1,
        "name": "car1"
        },
        {
        "id": 2,
        "name": "car2"
        },
        {
        "id": 3,
        "name": "car3"
        }
        ],
        "pagination": {
        "page": 1,
        "offset": 20
        }
        }

    """


    do {

        let tr = try JSONSerialization.jsonObject(with: Data(str.utf8), options: []) as! [String:Any] 

        let da = try JSONSerialization.data(withJSONObject: tr["cars"]  , options: [])

        let res = try JSONDecoder().decode([Car].self, from: da)

        print(res)


    }
    catch {

        print(error)
    }

代码语言:javascript
复制
struct Car: Codable {
    let id: Int
    let name: String
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54647795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档