J'utilise l'API de quelqu'un d'autre. Il me renvoie JSON. Comme ça;Puis-je déclarer une variable nommée 'Type' dans Swift?
[{"ID": 123,
"Name": "My Game Api",
"Type": "Racing",
"Num": 0,
"Country": "England"
}]
Je définir une struct pour analyser JSON, comme ceci:
struct MyResult : Decodable{
var ID : Int?
var Name : String?
var Type : String?
var Num : Int?
var Country : String?
}
// Using..
let games = try JSONDecoder().decode([MyResult].self, from: data!)
Bien sûr xCode me donne une erreur: membre de type ne peut pas être nommé 'Type', car il serait en conflit avec l'expression 'foo.Type'.
Je n'ai pas écrit l'API. Si je change le nom de la variable Type, je ne peux pas lire la valeur. Puis-je utiliser Struct décodable sans modifier l'API?
Comparer https://stackoverflow.com/q/44396500/2976878. Vous devez utiliser les noms de propriété 'lowerCamelCase' comme le veut la convention Swift; et mappez vos clés JSON dans une énumération 'CodingKeys' personnalisée. – Hamish
https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types#2904057 – Slayter
Aussi, sans rapport, mais est-ce que toutes vos propriétés doivent vraiment être optionnelles? Est-il légal que votre JSON ne contienne pas de clés pour * tout * d'entre eux? – Hamish