首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用`Codable`协议转换带有`[String:Any]`的Json数据

如何使用`Codable`协议转换带有`[String:Any]`的Json数据
EN

Stack Overflow用户
提问于 2018-01-25 13:34:06
回答 1查看 480关注 0票数 0

我在做一个框架。我想转换服务器响应JSON使用Codable协议。但是它有[String:Any]的价值。如何清除错误?Type 'Person' does not conform to protocol 'Encodable'

代码语言:javascript
复制
public class Person: Codable {
    public var name: String?
    public var age: Int?
    public var userOriginalData: [String:Any]? // [String:Any]? or data? or Row JSON string
}
EN

回答 1

Stack Overflow用户

发布于 2018-01-25 17:54:50

嗨,请检查我的答案,我没有得到任何错误。

代码语言:javascript
复制
  import UIKit
    struct Website : Decodable {
        let name : String
        let description : String
        let courses : [Course]
    }
    struct Course : Decodable {
        let id : Int?
        let name : String?
        let link : String?
        let imageUrl : String?
    }

    class ViewController: UIViewController {
        override func viewDidLoad() {
            super.viewDidLoad()
            getStartedBtn.setTitle(GetStarted, for: .normal)
            // Do any additional setup after loading the view, typically from a nib.
            self.callAPI()
        }
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
        func callAPI(){
            let urlString = "https://api.letsbuildthatapp.com/jsondecodable/website_description"
            guard let url = URL.init(string: urlString) else {
                return
            }
            URLSession.shared.dataTask(with: url) { (data, response, error) in
                guard let data = data else {
                    return
                }
                do {
                let web = try JSONDecoder().decode(Website.self, from: data)
                print(web.courses[0])
                }
                catch let error {
                print("error",error)
            }
        }.resume()
        }
    }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48436259

复制
相关文章

相似问题

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