Dans Swift, lors de la purge de JSON, il est passé dans le cas du serpent et la méthode d'adaptation gênante

1.Tout d'abord

«Comme son titre l'indique, il est décrit comme un mémorandum. ――Pour l'étui de chameau et l'étui de serpent, veuillez vérifier avec l'enseignant de Google.

2. version

3. 3. Lorsqu'il est reçu dans un étui à chameau

Lorsque le format de l'API est le cas du chameau lorsqu'il est reçu par l'API. En termes simples, si vous pouvez l'utiliser tel quel.

import Foundation

struct Response: Codable {
    ///Nom
    let firstName: String
    ///Nom de famille
    let lastName: String
}

///données reçues
var json = """
{
"firstName": "Yamada",
"lastName": "Taro"
}
"""

let data = json.data(using: .utf8)!

///Processus de décodage
let model = try! JSONDecoder().decode(Response.self, from: data)

print(model)

4. Il existe un moyen de recevoir dans le cas du serpent dans le paramètre de JSONDecoder

let jsonDecoder = JSONDecoder()
jsonDecoder.keyDecodingStrategy = .convertFromSnakeCase

Encodez ci-dessus. Cependant, comme il ne peut pas être utilisé automatiquement avec celui-ci seul, coupez «enum», qui est dérivé de «CodingKey», dans la structure de réception. Cela ressemble à ce qui suit

struct Response: Codable {
    ///Nom[first_name]
    let firstName: String
    ///Nom de famille[last_name]
    let lastName: String

    private enum CodingKeys: String, CodingKey {
        case firstName
        case lastName
    }
}

5. Sommaire

Avec l'implémentation suivante, même si l'API revient automatiquement dans le cas du serpent, elle peut être utilisée dans la structure du cas du camel côté code. Ah pratique (Si vous le savez, ce n'est pas une grande histoire, cependant)

import Foundation

struct Response: Codable {
    ///Nom[first_name]
    let firstName: String
    ///Nom de famille[last_name]
    let lastName: String

    private enum CodingKeys: String, CodingKey {
        case firstName
        case lastName
    }
}

///données reçues
var json = """
{
"first_name": "Yamada",
"last_name": "Taro"
}
"""

let data = json.data(using: .utf8)!

///Processus de décodage
let jsonDecoder = JSONDecoder()
jsonDecoder.keyDecodingStrategy = .convertFromSnakeCase
let model = try! jsonDecoder.decode(Response.self, from: data)

print(model)

La fin

Recommended Posts

Dans Swift, lors de la purge de JSON, il est passé dans le cas du serpent et la méthode d'adaptation gênante
[Ruby] Penser quand il n'y a pas de récepteur devant la méthode (ça ressemble à)
[jOOQ] Comment utiliser CASE WHEN dans la clause WHERE / AND / OR
Est-il possible de mettre la bibliothèque (aar) dans la bibliothèque Android (aar) et de l'utiliser?
[Swift] Au contraire, il est significatif d'éviter var et de le déclarer avec let uniquement lorsqu'il y a une branche dans l'affectation de la valeur initiale.
Quelle est la méthode principale en Java?
Lors de la réaffectation à un argument dans une méthode Ruby puis en appelant `super` → Celui réaffecté est utilisé
Faire correspondre le JSON du cas du serpent au champ du cas du chameau en Java (JVM)
[Java] Est-il inutile de vérifier "l'identité" dans l'implémentation de la méthode equals ()?
[Java] Lors de la mise d'une chaîne de caractères dans le cas de l'instruction switch, il est nécessaire d'en faire une expression constante
Lorsque le projet n'est pas affiché dans eclipse