美文网首页
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