美文网首页
Swift 4 JSON 解析遇到的问题(已解决)

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

作者: WinterIsHere | 来源:发表于2017-08-17 11:19 被阅读522次

最近开始学习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

相关文章

网友评论

      本文标题:Swift 4 JSON 解析遇到的问题(已解决)

      本文链接:https://www.haomeiwen.com/subject/ldugrxtx.html