Geon
Json Parsing with optional key 본문
JSON 파싱시 특정 Key를 아예 전달해주지 않을때 Decoding Error를 회피하는 방법
예시
정상 요청
data: {test1: "123", test2:"123"}, message: "", status: "SUCCESS"
비정상 요청
message: "잘못된 요청입니다.", status: "FAIL"
해결 방법
final class ExampleDTO: Codable {
var data: Dummy?
var message, status: String?
private enum CodingKeys: String, CodingKey{
case data, message, status
}
required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
self.data = (try? container.decode(Dummy.self, forKey: .data)) ?? Dummy()
self.message = try container.decode(String.self, forKey: .message)
self.status = try container.decode(String.self, forKey: .status)
}
final class Dummy: Codable {
var test1: String?
var test2: String?
}
* decoder에서 키를 매핑시킬때 try? 처리
'SwiftUI > 지식 창고' 카테고리의 다른 글
TextEditor에 PlaceHolder 적용 (0) | 2022.12.30 |
---|---|
SwiftUI 텍스트 크기 지정 (0) | 2022.12.14 |