Aller au contenu
Tout en local

JSON vers classe C#

Convertissez un exemple JSON en classes C# prêtes à l'emploi.

Entrée
Sortie

JSON vers classe C#

Collez un objet JSON ou un tableau d'objets JSON et cet outil déduit la structure et génère les classes C# correspondantes. Il est conçu pour la tâche quotidienne de convertir une réponse d'API, un fichier de configuration ou une charge utile d'exemple en modèles fortement typés sans les écrire manuellement.

Les options contrôlent l'apparence du code généré. Choisissez les attributs pour System.Text.Json ([JsonPropertyName]), Newtonsoft.Json ([JsonProperty]) ou aucun — les attributs sont ajoutés automatiquement chaque fois que le changement PascalCase modifie un nom de propriété, donc la clé JSON d'origine n'est jamais perdue. Choisissez les propriétés ou les champs, activez ou désactivez les types de référence nullable, générez un record à la place d'une class et choisissez List<T> ou T[] pour les tableaux. Les objets imbriqués deviennent leurs propres classes nommées d'après la propriété qui les contient, et une déclaration d'espace de noms enveloppe tout quand vous en fournissez une.

L'outil fusionne les formes de chaque élément lorsque vous collez un tableau, donc une clé qui n'est présente que sur certains éléments devient une propriété optionnelle et nullable au lieu de disparaître silencieusement. Les nombres restent des nombres entiers (int, s'élargissant à long pour les valeurs plus grandes) à moins qu'un point décimal ne force double, et une valeur qui est toujours null devient un objet nullable. Les noms de classe et de propriété sont échappés et dédupliqués automatiquement, donc les clés JSON invalides ou répétées ne produisent jamais de C# cassé.

Tout s'exécute localement dans votre navigateur — votre JSON n'est jamais téléchargé ni envoyé à un serveur, ce qui importe quand l'exemple provient d'une API privée ou contient des données client réelles. Copiez les classes générées, téléchargez-les sous forme de fichier .txt ou renvoyez la sortie à l'entrée pour l'affiner davantage.

FAQ

Comment choisit-il entre int, long et double?
Les nombres entiers deviennent int, ou long s'ils dépassent la plage 32 bits. Tout nombre avec un point décimal ou qui ne s'accorde pas avec un nombre entier ailleurs dans un tableau devient double.
Que se passe-t-il pour une propriété qui manque dans certains éléments du tableau?
Elle est générée comme une propriété nullable. Avec les types de référence nullable activés, cela ajoute un "?"; la même chose s'applique à une valeur qui est toujours null.
Peut-il conserver la clé JSON d'origine lorsqu'il renomme une propriété?
Oui. Chaque fois que le changement PascalCase ou l'échappement modifie un nom de propriété, la clé d'origine est conservée dans un attribut [JsonPropertyName] ou [JsonProperty], selon le style d'attribut que vous choisissez.
Génère-t-il des classes imbriquées pour les objets imbriqués?
Oui. Chaque objet imbriqué obtient sa propre classe nommée d'après la propriété qui la contient, et les tableaux d'objets génèrent une classe nommée d'après la forme singulière de cette propriété.
Mon JSON est-il téléchargé quelque part?
Non. La conversion s'exécute entièrement dans votre navigateur — votre JSON ne quitte jamais votre appareil.