Open a5978445 opened 6 years ago
source son file:
{ "status": "0", "msg": "ok", "result": { "city": "北京", "cityid": "1", "citycode": "101010100", "date": "2018-06-13", "week": "星期三", "weather": "雨", "temp": "17", "temphigh": "28", "templow": "18", "img": "301", "humidity": "84", "pressure": "1000", "windspeed": "10.4", "winddirect": "东风", "windpower": "2级", "updatetime": "2018-06-13 13:40:00", "index": [{ "iname": "空调指数", "ivalue": "较少开启", "detail": "您将感到很舒适,一般不需要开启空调。" }, { "iname": "运动指数", "ivalue": "较不宜", "detail": "有降水,推荐您在室内进行健身休闲运动;若坚持户外运动,须注意保暖并携带雨具。" }, { "iname": "紫外线指数", "ivalue": "弱", "detail": "紫外线强度较弱,建议出门前涂擦SPF在12-15之间、PA+的防晒护肤品。" }, { "iname": "感冒指数", "ivalue": "少发", "detail": "各项气象条件适宜,无明显降温过程,发生感冒机率较低。" }, { "iname": "洗车指数", "ivalue": "不宜", "detail": "不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。" }, { "iname": "空气污染扩散指数", "ivalue": "良", "detail": "气象条件有利于空气污染物稀释、扩散和清除,可在室外正常活动。" }, { "iname": "穿衣指数", "ivalue": "热", "detail": "天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。" }], "aqi": { "so2": "3", "so224": "4", "no2": "14", "no224": "35", "co": "0.430", "co24": "1.030", "o3": "105", "o38": "88", "o324": "100", "pm10": "18", "pm1024": "71", "pm2_5": "10", "pm2_524": "70", "iso2": "2", "ino2": "7", "ico": "5", "io3": "34", "io38": "44", "ipm10": "21", "ipm2_5": "14", "aqi": "44", "primarypollutant": "O3", "quality": "优", "timepoint": "2018-06-13 13:00:00", "aqiinfo": { "level": "一级", "color": "#00e400", "affect": "空气质量令人满意,基本无空气污染", "measure": "各类人群可正常活动" } }, "daily": [{ "date": "2018-06-13", "week": "星期三", "sunrise": "04:45", "sunset": "19:43", "night": { "weather": "多云", "templow": "18", "img": "1", "winddirect": "西北风", "windpower": "微风" }, "day": { "weather": "雷阵雨", "temphigh": "28", "img": "4", "winddirect": "东北风", "windpower": "微风" } }, { "date": "2018-06-14", "week": "星期四", "sunrise": "04:45", "sunset": "19:44", "night": { "weather": "多云", "templow": "20", "img": "1", "winddirect": "南风", "windpower": "微风" }, "day": { "weather": "多云", "temphigh": "31", "img": "1", "winddirect": "南风", "windpower": "微风" } }, { "date": "2018-06-15", "week": "星期五", "sunrise": "04:45", "sunset": "19:44", "night": { "weather": "多云", "templow": "22", "img": "1", "winddirect": "南风", "windpower": "微风" }, "day": { "weather": "多云", "temphigh": "33", "img": "1", "winddirect": "南风", "windpower": "微风" } }, { "date": "2018-06-16", "week": "星期六", "sunrise": "04:45", "sunset": "19:44", "night": { "weather": "雷阵雨", "templow": "21", "img": "4", "winddirect": "西南风", "windpower": "微风" }, "day": { "weather": "多云", "temphigh": "34", "img": "1", "winddirect": "南风", "windpower": "微风" } }, { "date": "2018-06-17", "week": "星期日", "sunrise": "04:45", "sunset": "19:45", "night": { "weather": "多云", "templow": "20", "img": "1", "winddirect": "东南风", "windpower": "微风" }, "day": { "weather": "雷阵雨", "temphigh": "30", "img": "4", "winddirect": "东北风", "windpower": "微风" } }, { "date": "2018-06-18", "week": "星期一", "sunrise": "04:45", "sunset": "19:45", "night": { "weather": "多云", "templow": "20", "img": "1", "winddirect": "南风", "windpower": "微风" }, "day": { "weather": "晴", "temphigh": "31", "img": "0", "winddirect": "东南风", "windpower": "微风" } }, { "date": "2018-06-19", "week": "星期二", "sunrise": "04:45", "sunset": "19:45", "night": { "weather": "多云", "templow": "21", "img": "1", "winddirect": "东南风", "windpower": "微风" }, "day": { "weather": "多云", "temphigh": "30", "img": "1", "winddirect": "东南风", "windpower": "微风" } }], "hourly": [{ "time": "13:00", "weather": "多云", "temp": "26", "img": "1" }, { "time": "14:00", "weather": "多云", "temp": "27", "img": "1" }, { "time": "15:00", "weather": "多云", "temp": "28", "img": "1" }, { "time": "16:00", "weather": "多云", "temp": "27", "img": "1" }, { "time": "17:00", "weather": "晴", "temp": "27", "img": "0" }, { "time": "18:00", "weather": "晴", "temp": "26", "img": "0" }, { "time": "19:00", "weather": "晴", "temp": "25", "img": "0" }, { "time": "20:00", "weather": "晴", "temp": "24", "img": "0" }, { "time": "21:00", "weather": "晴", "temp": "22", "img": "0" }, { "time": "22:00", "weather": "晴", "temp": "22", "img": "0" }, { "time": "23:00", "weather": "晴", "temp": "22", "img": "0" }, { "time": "0:00", "weather": "晴", "temp": "21", "img": "0" }, { "time": "1:00", "weather": "晴", "temp": "21", "img": "0" }, { "time": "2:00", "weather": "晴", "temp": "20", "img": "0" }, { "time": "3:00", "weather": "晴", "temp": "20", "img": "0" }, { "time": "4:00", "weather": "晴", "temp": "18", "img": "0" }, { "time": "5:00", "weather": "晴", "temp": "19", "img": "0" }, { "time": "6:00", "weather": "晴", "temp": "20", "img": "0" }, { "time": "7:00", "weather": "晴", "temp": "22", "img": "0" }, { "time": "8:00", "weather": "晴", "temp": "23", "img": "0" }, { "time": "9:00", "weather": "晴", "temp": "25", "img": "0" }, { "time": "10:00", "weather": "晴", "temp": "27", "img": "0" }, { "time": "11:00", "weather": "晴", "temp": "28", "img": "0" }, { "time": "12:00", "weather": "晴", "temp": "29", "img": "0" }] } }
when i use jsonExport export swift-codable file. it will generate the code
swift-codable
// // RootClass.swift // // Create by 腾芳 李 on 13/6/2018 // Copyright © 2018. All rights reserved. // Model file generated using JSONExport: https://github.com/Ahmed-Ali/JSONExport import Foundation struct RootClass : Codable { let msg : String? let result : Result? let status : String? enum CodingKeys: String, CodingKey { case msg = "msg" case result case status = "status" } init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) msg = try values.decodeIfPresent(String.self, forKey: .msg) result = try Result(from: decoder) status = try values.decodeIfPresent(String.self, forKey: .status) } }
above the code result = try Result(from: decoder) has logic error, should be modify result = try values.decodeIfPresent(Result.self, forKey: .result)
result = try Result(from: decoder)
result = try values.decodeIfPresent(Result.self, forKey: .result)
source son file:
when i use jsonExport export
swift-codable
file. it will generate the codeabove the code
result = try Result(from: decoder)
has logic error, should be modifyresult = try values.decodeIfPresent(Result.self, forKey: .result)