――Wie der Titel sagt, wird es als Memorandum beschrieben. ――Für Kamel- und Schlangenfälle wenden Sie sich bitte an den Google-Lehrer.
Wenn das API-Format beim Empfang durch die API ein Kamelfall ist. Einfach ausgedrückt, wenn Sie es so verwenden können, wie es ist.
import Foundation
struct Response: Codable {
///Name
let firstName: String
///Familienname, Nachname
let lastName: String
}
///empfangene Daten
var json = """
{
"firstName": "Yamada",
"lastName": "Taro"
}
"""
let data = json.data(using: .utf8)!
///Dekodierungsprozess
let model = try! JSONDecoder().decode(Response.self, from: data)
print(model)
let jsonDecoder = JSONDecoder()
jsonDecoder.keyDecodingStrategy = .convertFromSnakeCase
Code oben. Da es jedoch nicht automatisch verwendet werden kann, schneiden Sie "enum", das von "CodingKey" abgeleitet ist, in die Empfangsstruktur. Es sieht wie folgt aus
struct Response: Codable {
///Name[first_name]
let firstName: String
///Familienname, Nachname[last_name]
let lastName: String
private enum CodingKeys: String, CodingKey {
case firstName
case lastName
}
}
Mit der folgenden Implementierung kann die API, selbst wenn sie automatisch im Schlangenfall zurückkehrt, in der Kamelfallstruktur auf der Codeseite verwendet werden. Ah bequem (Wenn Sie es wissen, ist es jedoch keine große Geschichte)
import Foundation
struct Response: Codable {
///Name[first_name]
let firstName: String
///Familienname, Nachname[last_name]
let lastName: String
private enum CodingKeys: String, CodingKey {
case firstName
case lastName
}
}
///empfangene Daten
var json = """
{
"first_name": "Yamada",
"last_name": "Taro"
}
"""
let data = json.data(using: .utf8)!
///Dekodierungsprozess
let jsonDecoder = JSONDecoder()
jsonDecoder.keyDecodingStrategy = .convertFromSnakeCase
let model = try! jsonDecoder.decode(Response.self, from: data)
print(model)
Das Ende
Recommended Posts