Convertisseur JSON vers C#

Générez des classes C# à partir d'un exemple JSON directement dans votre navigateur.

Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers ne sont jamais envoyés à un serveur.

using System.Collections.Generic;

public class Root
{
    public string Name { get; set; }
    public int Age { get; set; }
    public bool Active { get; set; }
    public List<string> Tags { get; set; }
    public Address Address { get; set; }
}

public class Address
{
    public string Street { get; set; }
    public string Zip { get; set; }
}

Ce que fait ce convertisseur

Lit une valeur JSON et génère les classes C# correspondantes : une classe par forme d'objet trouvée dans l'exemple, chacune avec des propriétés publiques auto-implémentées.

Mode d'emploi

Collez un objet, un tableau ou une valeur primitive JSON dans l'éditeur. Une classe `Root` apparaît immédiatement, avec une classe supplémentaire pour chaque forme d'objet imbriquée ; une racine qui n'est pas un objet est enveloppée dans une classe `Root` avec une seule propriété `Value`.

Exemple

Un objet avec une chaîne `name` et un objet imbriqué `address` produit une classe `Root` avec `public string Name { get; set; }`, ainsi qu'une classe `Address` distincte pour la forme imbriquée.

Correspondance des types et nommage

Les chaînes deviennent `string`, les entiers `int`, les décimaux `double`, les booléens `bool` et les tableaux `List<ElementType>` (avec la directive `using System.Collections.Generic` ajoutée automatiquement si nécessaire). Les noms de propriété sont convertis en PascalCase à partir de la clé JSON, selon la convention C# — une clé `first_name` produit ainsi une propriété `FirstName`.

Objets imbriqués et listes

Chaque objet imbriqué reçoit sa propre classe, générée à partir de sa clé. L'ordre des classes dans la sortie n'a pas d'importance en C#, puisque les classes d'un même fichier peuvent se référencer entre elles quel que soit leur ordre de déclaration.

Limites

Comme les noms de propriété sont convertis en PascalCase et ne correspondent plus au texte de la clé JSON d'origine, désérialiser du JSON directement dans ces classes avec System.Text.Json ou Newtonsoft.Json nécessite d'ajouter manuellement un attribut [JsonPropertyName]/[JsonProperty] pour toute clé qui n'était pas déjà en PascalCase. Les classes générées ne décrivent que l'exemple JSON fourni.

Confidentialité

L'analyse et la génération de code s'exécutent entièrement dans votre navigateur. Le JSON collé et le C# généré ne sont jamais transférés.

Questions Fréquentes

Ces classes désérialisent-elles automatiquement mon JSON ?
Pas toujours — les noms de propriété sont convertis en PascalCase selon la convention C#, donc une clé JSON comme first_name nécessite un attribut [JsonPropertyName("first_name")] pour correspondre à nouveau lors de la désérialisation.
Pourquoi PascalCase plutôt que la clé JSON d'origine ?
Cela suit la convention de nommage standard de C# pour les propriétés publiques, celle que la plupart des développeurs C# attendent et utilisent dans leur propre code.
Mon JSON est-il envoyé à un serveur ?
Non — l'analyse et la génération C# s'effectuent entièrement dans votre navigateur.