Swift 4 JSON 解析遇到的问题(已解决)

最近开始学习Swift,发现Swift 4 加入了原生的JSON解析。 参照这个教程学习了原生的JSON 解析Swift 4 JSON 解析指南,在这过程中我遇到了点问题,写出来看看有没有人也遇到了,一起找找解决办法。

第一种情况(属性全在一个类---解析正常)

模型
enum BeerStyle: String, Codable {
    case ipa
    case stout
    case kolsch
}

class Beer: Codable {
    var name: String?
    var abv: Float?
    var brewery: String?
    var style: BeerStyle?
}
JSON与解析
let jsonDic = ["name":"Endeavor", "abv":8.9, "brewery":"Saint Arnold", "style":"ipa"] as [String : Any]
        
let jsonData = try! JSONSerialization.data(withJSONObject: jsonDic, options: .prettyPrinted)

let decode = JSONDecoder()

        do {
            let beer = try decode.decode(Beer.self, from: jsonData)
            print("解析成功:\(beer)")
        } catch  {
            print("解析失败:\(error)")
        }
解析结果
解析结果

第二种情况(继承父类属性---解析有问题(只有继承于父类的属性有值))

模型
enum BeerStyle: String, Codable {
    case ipa
    case stout
    case kolsch
}

class Wine: Codable {
    var abv: Float?
}


class Beer: Wine {
    var name: String?
    var brewery: String?
    var style: BeerStyle?
}

JSON与解析

与第一种情况相同

解析结果
解析结果

可以发现只有父类的的属性解析到了数据
子类全为nil

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 田园小憩 by 水木宁 如画风景寻常中 , 含笑对影望晴空。 小舟荡漾烟波里, 渔女娇俏背霓虹。 荷叶田田醉心间,...
    水木宁阅读 509评论 33 18
  • 又不开心了 女生的友谊就是这么微妙 一不小心就碰击临界点 我总是处理不好 尤其是现在 微妙 W帮我上班 带她喜...
    许我一世回忆清清阅读 92评论 0 0