swift codableのデバッグ
型や項目の必須、任意が正しくないと1件もヒットしなくなってしまうのでエラー時のデバックプリントはたぶん必須
Swift
let data = """
[{
"id": 1,
"name": "USER1",
},{
"id": 2,
"namexxx": "USER2",
}]
""".data(using: .utf8)!
struct User: Codable {
var id: Int
var name: String
}
do {
let users = try JSONDecoder().decode([User].self, from: data)
dump(users)
} catch {
print(error)
}
}コンソール
keyNotFound(CodingKeys(stringValue: "name", intValue: nil), Swift.DecodingError.Context(codingPath: [_JSONKey(stringValue: "Index 1", intValue: 1)], debugDescription: "No value associated with key CodingKeys(stringValue: \"name\", intVal\ ue: nil) (\"name\").", underlyingError: nil))
の結果より、Index = 1がkeyNotFoundとなっているので2番目のデータがおかしいことがわかる。以上です。