Comment utiliser le mémo personnel codable de Swift

SwiftyJson est pratique, mais Codable, qui est une fonction standard de la table Swift, était également facile à utiliser, alors notez

Un exemple de conversion de json en instance avec le codable le plus simple, ce qui n'est pas pratique

Faites simplement hériter à struct Codable, convertissez json en données, puis utilisez JSONDecoder.decode. Cependant, les informations de type définies dans Codable et la forme de json doivent être exactement les mêmes. Par conséquent, si même une clé json est manquante, une erreur se produit.


var data = """
{
  "name": "Bob",
  "age": 20,
  "sex": "male",
}
""".data(using: .utf8)!

struct User: Codable {
  let name: String
  let age: Int
}

let users: User = try JSONDecoder().decode(User.self, from: data)
users // User(name: 1, age: 20)

Utilisation pratique de Codable (si la clé json est manquante)

Modifiez la classe de struct comme suit et initialisez-la dans la fonction init. Écrit en pure rapidité, il est facile à comprendre.

var data = """
{
  "name": "Bob",
  "age": 20,
}
""".data(using: .utf8)!

class User: Codable {
  var name: String
  var age: Int
  var sex: String? //le sexe n'est pas en json!

    required init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        self.name = try container.decodeIfPresent(String.self, forKey: .name) ?? nil
        self.age = try container.decodeIfPresent(Int.self, forKey: .age) ?? nil
        self.sex = try container.decodeIfPresent(String.self, forKey: .sex) ?? nil
    }
}
let users: User = try JSONDecoder().decode(User.self, from: data)
users // User(name: "Bob", age: 20, sex: nil)

Sommaire

Codable n'est pas trop mal comparé à Swifty Json.

Recommended Posts

Comment utiliser le mémo personnel codable de Swift
Comment utiliser le tableau (mémorandum personnel)
Comment utiliser Map
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Remarquez comment utiliser Swift Super Basic TableView
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Comment utiliser le hachage
Comment utiliser Dozer.mapper
Comment utiliser Gradle
[Pour les super débutants] Comment utiliser l'autofocus: vrai
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser Map
Comprendre comment utiliser le décodeur JSON de Swift en 3 minutes
Comment utiliser GitHub pour les super débutants (développement d'équipe)
Comment utiliser l'API Chain
[Java] Comment utiliser Map
Comment utiliser Queue avec priorité
[Rails] Comment utiliser enum
Comment utiliser java Facultatif
Comment utiliser JUnit (débutant)
Comment utiliser le retour Ruby
[Rails] Comment utiliser enum
Comment utiliser @Builder (Lombok)
Comment utiliser la classe Java
Comment utiliser Big Decimal
[Java] Comment utiliser removeAll ()
Comment utiliser String [] args
Comment utiliser la jonction de rails
Comment utiliser Java Map
Ruby: Comment utiliser les cookies
Comment utiliser Dependant :: Destroy
Comment utiliser Eclipse Debug_Shell
Comment utiliser Apache POI
[Rails] Comment utiliser la validation
Comment utiliser les variables Java
[Rails] Comment utiliser authenticate_user!
Comment utiliser GC Viewer
Comment utiliser Lombok maintenant
[Création] Comment utiliser JUnit