저는 Swift 4를 처음 사용하고 제 문제에 대한 해결책을 찾기 위해 몇 시간 씩 보였습니다. 난 그냥 name
및 symbol
필요Swift4/JSON/Decode
[
{ aliases: [ ],
name: "300 Token",
symbol: "300",
},
{
aliases: [ ],
name: "SixEleven",
symbol: "611",
},
]
: 같은
import Foundation
public struct Coin: Codable {
let name: String //= "Default"
let symbol: String
}
open class CoinCapIOAPI {
func fetchMap() {
let urlString = "http://socket.coincap.io/map"
guard let url = URL(string: urlString) else { return }
URLSession.shared.dataTask(with: url) { (data, response, error) in
// Maybe later...
guard let data = data else { return }
do {
let coins = try JSONDecoder().decode([Coin].self, from: data)
print(coins)
} catch let jsonErr {
print("Error: ", jsonErr)
}
}.resume()
}
}
는 JSON 보인다. 그러나 구조체의 이름의 기본없이 나는 다음과 같은 얻을 오류 :
내가 "이름"의 기본 값을 추가하면 나는이 결과를 얻을Error: keyNotFound(CoinBartender.Coin.(CodingKeys in _7C60C6A5E9E301137DE95AF645AB94EB).name, Swift.DecodingError.Context(codingPath: [Foundation.(_JSONKey in _12768CA107A31EF2DCE034FD75B541C9)(stringValue: "Index 91", intValue: Optional(91))], debugDescription: "No value associated with key name (\"name\").", underlyingError: nil))
:
[CoinBartender.Coin(name: "Default", symbol: "300"), CoinBartender.Coin(name: "Default", symbol: "611"),
이유는 무엇입니까 symbol
작업하지만 name
아무튼 '티?
결과 집합을 자세히 살펴보면 모든 레코드가'name' 속성을 가지고있는 것은 아닙니다. – Gereon