Ce que fait l’outil
Collez un document JSON (une réponse d’API, un fichier de configuration, la charge utile d’un webhook) et obtenez des types C# à coller directement dans un projet .NET. La sortie se met à jour pendant la saisie.
Pourquoi c’est mieux que « Paste JSON as Classes »
- Examine chaque élément du tableau, pas seulement le premier. Une propriété absente de certains éléments, ou
nulldans certains, devient nullable (int?,string?), et un nombre qui vaut1dans un élément et2.5dans un autre devientdouble. - Véritable déduction des types :
int, oulongsi une valeur ne tient pas ;doubleoudecimalpour les fractions ;bool;Guid;DateTimeOffsetpour les horodatages avec décalage ouZ,DateTimesans,DateOnlypour les dates simples. Les valeurs mixtes deviennentJsonElement. - Les structures identiques ne sont générées qu’une fois.
shippingAddressetbillingAddressavec les mêmes propriétés partagent un seul typeAddress. - Les objets indexés par ID (
{"1": {...}, "2": {...}}) deviennentDictionary<string, T>. - Des identifiants toujours valides :
user_iddevientUserId, les noms commençant par un chiffre reçoivent un préfixe_, les mots-clés C# sont échappés avec@et les conflits avec le nom de la classe ou d’autres propriétés sont renommés. - Attributs System.Text.Json uniquement là où il le faut. « Paramètres Web par défaut » suppose ASP.NET Core /
JsonSerializerOptions.Web(camelCase) ; « diffère exactement » couvre aussi leJsonSerializerpar défaut, sensible à la casse. - C# moderne : records avec
initou classes avecset, types référence nullables avec initialiseurs sûrs, membresrequiredfacultatifs, espace de noms à portée fichier.
Comment l’utiliser
Collez du JSON ou déposez un fichier .json, choisissez le nom du type racine et l’espace de noms, puis copiez ou téléchargez le fichier .cs. La ligne d’état indique l’appel JsonSerializer.Deserialize<T> à utiliser.
Confidentialité
La conversion s’exécute entièrement dans votre navigateur. Votre JSON n’est jamais envoyé ; la dernière saisie est conservée dans le stockage local.