Aller au contenu
Tout en local

JSON à struct Codable Swift

Transforme un exemple JSON en une struct Swift conforme à Codable.

Entrée
Sortie

JSON à struct Codable Swift

Collez un exemple JSON et cet outil déduit sa forme et génère une struct Swift conforme à Codable, prête à être intégrée dans un projet iOS, macOS ou Swift côté serveur. Les objets imbriqués deviennent leurs propres structs imbriquées, les arrays deviennent des arrays Swift typés, et une valeur qui manque ou est null devient une propriété optionnelle avec un point d'interrogation, de sorte que le modèle généré correspond à ce que l'API envoie réellement, pas seulement un heureux échantillon.

Les options contrôlent la forme du code généré. Choisissez struct ou class pour la déclaration, et let ou var pour la mutabilité des propriétés. Activer CodingKeys convertit les clés JSON en snake_case comme user_name en la convention camelCase de Swift et ajoute l'enum CodingKeys correspondant, de sorte que le décodage s'aligne sur les noms de champs d'origine; laissez-le désactivé pour conserver les clés JSON telles quelles. Le niveau d'accès détermine si le type et ses propriétés sont public ou internal. Les champs de date en Date reconnaissent les chaînes ISO-8601 et les typent comme Date au lieu de String, et l'indentation vous permet de correspondre au style de votre projet avec 2 espaces, 4 espaces ou des tabulations.

Un champ qui mélange des types non liés dans un array d'exemple (une valeur qui est parfois un nombre et parfois une chaîne) revient à un petit wrapper AnyCodable qui n'est ajouté à la sortie que lorsqu'il est réellement nécessaire, de sorte que la struct se compile plutôt que de deviner silencieusement mal. Les clés qui ne sont pas des identificateurs Swift valides, y compris les emoji ou les clés commençant par un chiffre, sont désinfectées et remappées via CodingKeys automatiquement pour que rien ne soit perdu.

Tout s'exécute localement dans votre navigateur au fur et à mesure que vous tapez (aucun exemple JSON n'est jamais téléchargé ou envoyé à un serveur), ce qui importe lorsque l'exemple provient d'une réponse API réelle. Copiez le Swift généré, téléchargez-le en tant que fichier .txt, ou renvoyez-le à l'entrée pour l'affiner davantage.

FAQ

Comment les objets JSON imbriqués sont-ils gérés?
Chaque objet imbriqué devient sa propre struct Swift, nommée d'après la clé sous laquelle elle est apparue, et référencée à partir de la struct parent par type.
Que se passe-t-il pour un champ qui est parfois null ou manquant?
Il est généré comme une propriété optionnelle avec un point d'interrogation, de sorte que le décodage ne échoue jamais sur une réponse réelle qui l'omet.
Qu'est-ce que l'option CodingKeys fait exactement?
Lorsqu'elle est activée, une clé JSON en snake_case comme created_at devient la propriété createdAt, et un enum CodingKeys la remapipe pour le décodage. Lorsqu'elle est désactivée, le nom de la propriété correspond à la clé JSON aussi étroitement que possible selon les règles d'identificateurs de Swift.
Peut-il générer une classe au lieu d'une struct?
Oui. L'option Déclaration bascule chaque type généré entre struct et class tout en maintenant la même conformité Codable.
Mon JSON est-il téléchargé n'importe où?
Non. La struct est générée entièrement dans votre navigateur — votre exemple JSON ne quitte jamais votre appareil.