In Swift wird JSON beim Löschen im Snake-Fall und in der problematischen Bewältigungsmethode übergeben

1. Zuallererst

――Wie der Titel sagt, wird es als Memorandum beschrieben. ――Für Kamel- und Schlangenfälle wenden Sie sich bitte an den Google-Lehrer.

2. Ausführung

3. 3. Bei Empfang in einem Kamelkoffer

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)

4. Es gibt eine Möglichkeit, im Schlangenfall den Parameter "JSONDecoder" zu empfangen

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
    }
}

5. Zusammenfassung

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

In Swift wird JSON beim Löschen im Snake-Fall und in der problematischen Bewältigungsmethode übergeben
[Ruby] Denken, wenn sich vor der Methode kein Empfänger befindet (wie es aussieht)
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
Ist es möglich, die Bibliothek (aar) in die Android-Bibliothek (aar) zu stellen und zu verwenden?
[Swift] Vielmehr ist es sinnvoll, var zu vermeiden und nur dann mit let zu deklarieren, wenn die Zuweisung des Anfangswertes einen Zweig enthält.
Was ist die Hauptmethode in Java?
Wenn Sie einem Argument in einer Ruby-Methode neu zuweisen und dann "super" aufrufen → Das neu zugewiesene wird verwendet
Stellen Sie sicher, dass der JSON des Schlangenfalls dem Feld des Kamelfalls in Java (JVM) entspricht.
[Java] Ist es nicht erforderlich, "Identität" bei der Implementierung der equals () -Methode zu überprüfen?
[Java] Wenn Sie eine Zeichenfolge in die switch-Anweisung einfügen, müssen Sie sie zu einem konstanten Ausdruck machen
Wenn das Projekt nicht in Eclipse angezeigt wird