때때로 JSON에서 특정 키 (이 경우 id
)를 Int로 반환하고 다른 경우에는 동일한 키를 반환하는 API가 있습니다. String. JSON을 구문 분석하는 코드 가능 코드는 어떻게 사용합니까?가끔은 Int 인 키와 코드를 사용하는 코드 가능
struct GeneralProduct: Codable {
var price:Double!
var id:String?
var name:String!
private enum CodingKeys: String, CodingKey {
case price = "p"
case id = "i"
case name = "n"
}
init(price:Double? = nil, id: String? = nil, name: String? = nil) {
self.price = price
self.id = id
self.name = name
}
}
이 오류 메시지가 계속 나타납니다. Expected to decode String but found a number instead
. id 필드가 비어 있고 id 필드가 비어 있으면 기본적으로 숫자로 식별 할 수있는 코드로 0을 반환합니다. 나는 기본적으로 ID 키를 무시할 수 있지만 코드 가능한 것은 내 지식에 무시할 수있는 옵션을주지 않습니다. 이것을 처리하는 가장 좋은 방법은 무엇입니까?
다음은 JSON입니다. 그것은
{
"p":2.12,
"i":"3k3mkfnk3",
"n":"Blue Shirt"
}
오류 작업
매우 간단합니다 - 어떤 ID가 시스템에 없기 때문에, 그것은 분명히 codable 문자열에 반대 숫자로 보는 기본값으로 0을 반환합니다.
{
"p":2.19,
"i":0,
"n":"Black Shirt"
}
내가 당신에게 우리를 제안 :
이
테스트입니다 대신에 SwiftyJSON 라이브러리. – t4nhpt왜 그런 말을합니까? 코드화가 훨씬 더 좋으므로 SwiftyJSON을 사용하는 것이 좋습니다. 솔루션이 없다면 분명히 SwiftyJSON을 사용할 것입니다. 그러나이 작업을 수행 할 방법이 없다면 나는 놀랄 것입니다. –
어떤 JSON이 작동하고 어떤 JSON이 아닌지에 대한 예를 들려 줄 수 있습니까? –