首页 > 解决方案 > JSON返回零检查?

问题描述

struct AltWX: Decodable {
var raw: String
}

typealias AltMetarDecode = [String: AltWX]



do 
{ 
    let aero = try decoder.decode(AltMetarDecode.self, from: data) 
    DispatchQueue.main.async {
        if self.DownloadOrderCode == 3 
        {
            if let Ab = aero[ICAO1]
            {
                self.Alternate1Metar.text = Ab.raw
                UserDefaults.standard.set(Ab.raw, forKey: "MetarCodeAlt1")
            }
        }
        ...

上面的代码像这样访问一个 Json:

"xxxx": { "raw": "Test" 

所以Ab.raw会打印测试

如何添加错误检查以查看 ICAO1 是否存在以及 Ab.raw 是否存在,以及是否有任何值为 nil 的返回值?我阅读了对 Json 的通常捕获响应,但不确定如何针对这种情况特别格式化它,特别是我有很多订单代码,每个订单代码都必须单独检查。

标签: jsonswiftapinulljsondecoder

解决方案


这检查是否ICAO1存在并且raw为空

if let raw = aero["ICAO1"]?.raw, raw.isEmpty {

}

请根据命名约定将变量命名为小写。


推荐阅读