JSON vers classes C#

Collez du JSON, obtenez des records ou des classes C# propres, prêts pour System.Text.Json.

Fonctionne en local · aucun envoi
Detect
JSON
C#

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 null dans certains, devient nullable (int?, string?), et un nombre qui vaut 1 dans un élément et 2.5 dans un autre devient double.
  • Véritable déduction des types : int, ou long si une valeur ne tient pas ; double ou decimal pour les fractions ; bool ; Guid ; DateTimeOffset pour les horodatages avec décalage ou Z, DateTime sans, DateOnly pour les dates simples. Les valeurs mixtes deviennent JsonElement.
  • Les structures identiques ne sont générées qu’une fois. shippingAddress et billingAddress avec les mêmes propriétés partagent un seul type Address.
  • Les objets indexés par ID ({"1": {...}, "2": {...}}) deviennent Dictionary<string, T>.
  • Des identifiants toujours valides : user_id devient UserId, 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 le JsonSerializer par défaut, sensible à la casse.
  • C# moderne : records avec init ou classes avec set, types référence nullables avec initialiseurs sûrs, membres required facultatifs, 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.