Convertisseur Objective-C vers JSON
Colle des dictionnaires, arrays ou classes Objective-C. Tu récupères du JSON.
Ce que fait cet outil
Si tu as un littéral NSDictionary en Objective-C, un NSArray de modèles, ou une classe entière avec une pile de @property, et que tu veux juste la version JSON — cet outil le fait. Pas besoin d'écrire un petit programme jetable qui appelle NSJSONSerialization pour voir le résultat.
La sortie colle à ce que [NSJSONSerialization dataWithJSONObject:options:error:] te donnerait sur l'équivalent en mémoire. NSDictionary devient un objet JSON, NSArray devient un array JSON, NSString reste une string, NSNumber devient un number ou un boolean selon le type sous-jacent (@YES/@NO vs @42), NSNull / [NSNull null] devient null. NSDate sort en string ISO-8601 — la convention sur laquelle toutes les apps iOS finissent par s'accorder.
Si tu colles une classe entière (@interface Order : NSObject ... @end plus une @implementation ou un littéral [[Order alloc] init] avec des assignations), le convertisseur lit chaque @property et construit l'objet JSON avec ces clés. Les classes imbriquées — une propriété Address dans Order — sont dépliées en objets JSON imbriqués. Plusieurs classes collées ensemble sortent comme plusieurs entrées top-level.
Comment l'utiliser
Trois étapes. Marche pour un simple littéral de dictionnaire comme pour un fichier plein de classes.
Colle ton Objective-C (ou essaie l'exemple)
Dépose ton code dans l'éditeur de gauche. Un littéral NSDictionary, un NSArray, une classe avec @property, ou une instance de classe avec assignations — tout passe.
Laisse les préfixes @, les étoiles de pointeur et les crochets tranquilles. Le parser comprend @{...}, @[...] et @"...".
Clique sur Convertir
Clique sur le bouton vert Convertir. L'outil lit chaque dictionnaire, array, property et valeur, et construit le JSON d'un seul coup.
Copie le JSON
Le panneau de droite te sort un JSON indenté, prêt pour un fixture de test, un mock d'API ou de la doc. Copie et file.
Quand ça te sauve vraiment la mise
Fixtures de réponses d'API iOS
Colle le dictionnaire que tu passerais à <code>dataWithJSONObject:</code> dans un test unitaire et sauvegarde la sortie en fixture .json. Ça rend le test déterministe.
Documenter des modèles Obj-C legacy
Une vieille base iOS a des classes Obj-C à documenter dans une spec OpenAPI. Convertis chaque modèle en JSON pour obtenir la forme du schéma sans deviner.
Migration vers Swift
Dans le cadre d'une Swiftification, tu veux la forme JSON implicite par chaque classe Obj-C. Moyen rapide de générer cette référence avant d'écrire le struct Codable.
Handoff backend
Tu as un NSDictionary prêt à poster. Colle-le pour vérifier que la forme JSON colle au contrat d'API avant que la requête parte.
Questions fréquentes
Ça correspond à la sortie de NSJSONSerialization ?
Oui — c'est l'objectif. NSDictionary/NSArray/NSString/NSNumber/NSNull se mappent de façon standard. NSDate est sérialisé en ISO-8601 (NSJSONSerialization ne gère pas NSDate — l'outil reprend la convention la plus répandue).
Je peux coller une classe avec des déclarations @property ?
Oui. Chaque @property devient une clé de l'objet JSON, et le type dicte comment la valeur est émise (p. ex. NSString * → string, NSNumber * → number). Si l'exemple inclut aussi des assignations, elles remplissent le JSON ; sinon on met des valeurs placeholder.
Comment distingue-t-on BOOL et NSNumber ?
@YES / @NO et [NSNumber numberWithBool:] émettent true/false en JSON. Les littéraux NSNumber entiers et flottants (@42, @3.14) émettent des nombres JSON — la même règle que NSJSONSerialization applique dès qu'il peut le déduire du type encodé.
Et les classes imbriquées, les arrays d'objets ?
Les NSDictionary et NSArray imbriqués sont dépliés complètement. Une classe qui a une autre classe en propriété sort en objet JSON imbriqué. Un NSArray d'instances de modèle devient un array JSON d'objets, un par instance.
Mon code est-il stocké ?
Ton code est envoyé au backend pour la conversion et n'est pas persisté — on ne logge pas le payload. Ceci dit, masque les vraies clés ou tokens dans l'exemple avant de coller.
Ça gère NSDate, NSURL et les autres types Foundation ?
NSDate devient une string ISO-8601. NSURL devient son absoluteString. NSData devient du base64. Ce sont les conventions utilisées par la plupart des équipes iOS quand elles sérialisent, documentées dans Foundation.
D'autres outils qui peuvent servir
Objective-C vers JSON se marie bien avec le reste de la boîte à outils :