J'essaye d'implémenter le nouveau protocole Decodable de Swift 4 et j'ai du mal à l'approcher.Utilisation du protocole Decodable de Swift 4 pour la réponse du serveur JSON imbriqué
Ceci est ma réponse du serveur JSON:
{
"success": true,
"errorCode": 0,
"message": "Succcess",
"data": {
"name": "Logan Howlett",
"nickname": "The Wolverine",
"image": "http://heroapps.co.il/employee-tests/ios/logan.jpg",
"dateOfBirth": 1880,
"powers": [
"Adamantium Bones",
"Self-Healing",
"Adamantium Claws"
],
"actorName": "Hugh Jackman",
"movies": [
{
"name": "X-Men Origins: Wolverine",
"year": 2009
},
{
"name": "The Wolverine",
"year": 2013
},
{
"name": "X-Men: Days of Future Past",
"year": 2014
},
{
"name": "Logan",
"year": 2017
},
]
}
}
Quelle serait la meilleure approche pour Décoder la partie data
de la réponse? En outre, que se passe-t-il si le data
est soudainement un array
au lieu d'un objet, comment puis-je prendre en charge les deux types de données?
Merci beaucoup :)
'Aussi, que se passe-t-il si les données sont soudainement un tableau au lieu d'un objet, comment puis-je prendre en charge les deux types de données?' - utiliser 'enum's avec associé valeurs dans votre type? Un cas avec 'array', autre avec' dictionary'. – user28434
Vous devriez lire [Types personnalisés de codage et de décodage] (https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types) dans la documentation Codable pour voir comment écrire des types qui reflètent votre représentation JSON. Généralement, cela implique d'écrire le type et de se conformer à Codable, et le reste devrait être fait pour vous. –