繁体   English   中英

使用Decodable嵌套数据结构

[英]Struct with nested data using Decodable

我正在使用Alamofire在Swift 4中使用API​​。 我正在使用结构来创建我希望在该响应中使用的数据的模型,并确认使用Decodable。

我的回应看起来像是...

    {  
       "pagination":{  
          "per_page":50,
          "items":3909,
          "page":1,
          "urls":{  
             "last":"https://api.discogs.com/database/search?q=ed+rush&per_page=50&secret=foo&page=79&key=bar",
             "next":"https://api.discogs.com/database/search?q=ed+rush&per_page=50&secret=foo&page=2&key=bar"
          },
          "pages":79
       },
       "results": []
    }

我的模型如下所示...

struct SearchResults: Decodable {
    let pagination: SearchPagination
    let results: [SearchResult]
}

struct SearchResult: Decodable {
    let type: String
}

struct SearchPagination: Decodable {
    let per_page: Int
    let items: Int
    let page: Int
    let pages: Int
}

我想了解的是,由于urls是嵌套对象本身,因此我将如何对分页进行建模。 我是只为urls创建结构还是在这里遗漏了明显的东西?

也许结构不是最好的方法? 我来自JS背景,结构感觉非常像TypeScript中的接口,但是我知道我可能在这里丢失了一些东西。

Decodable的“规则”是,任何字典{}将成为结构/类,而每个键都将成为属性。

struct SearchPagination: Decodable {
    let per_page: Int
    let items: Int
    let page: Int
    let pages: Int
    let urls: URLData
}

struct URLData: Decodable {
    let last, next : URL
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM