Я познакомился со структурой Codable в swift 4.0, *.Итак, я попробовал это при декодировании josn.
if let jsonData = jsonString.data(using: .utf8) {
let decodingData = try? JSONDecoder().decode(SampleModel.self, from: jsonData)
}
Пример образца модели данных ниже.
struct SampleModel : Codable {
var no: Int?
var category: Int?
var template_seq: Int?
}
А пример данных json приведен ниже ..
{
"data": {
"result" : 1
"total_count": 523,
"list": [
{
"no": 16398,
"category" : 23,
"template_seq" : 1
},
{
"no": -1,
"category" : 23,
"template_seq" : 1
}
]
}
}
Но я хочу фильтровать неправильные данные.Если значение «нет» меньше или равно 0, это недопустимое значение.
Перед тем, как не использовать кодируемый ... ниже.(используя ответ Alamifre ison)
guard let dictionaryData = responseJSON as? [String : Any] else { return nil }
guard let resultCode = dictionaryData["result"] as? Bool , resultCode == true else { return nil }
guard let theContainedData = dictionaryData["data"] as? [String:Any] else { return nil }
guard let sampleListData = theContainedData["list"] as? [[String : Any]] else { return nil }
var myListData = [MyEstimateListData]()
for theSample in sampleListData {
guard let existNo = theSample["no"] as? Int, existNo > 0 else {
continue
}
myListData.append( ... )
}
return myListData
как отфильтровать неверные или недействительные данные с помощью swift 4.0 Codable ??