JSON vers classes C#
Générez des classes C# depuis du JSON avec propriétés en PascalCase, attributs [JsonPropertyName], types référence nullables et collections List<T>. Gratuit et privé.
Utilise les attributs de System.Text.Json et les types référence nullables (string?, long?).
S'exécute entièrement dans votre navigateur. Vos données ne sont jamais envoyées.
Outils Connexes
Voir ToutQu'est-ce que JSON vers C# ?
Transforme un exemple JSON en classes C# pour System.Text.Json. Chaque propriété est en PascalCase, porte un attribut [JsonPropertyName("…")] avec la clé d'origine et utilise des types nullables lorsque l'exemple contient des valeurs null ou absentes.
Comment utiliser JSON vers C#
- Collez un exemple JSON dans Entrée JSON (ou cliquez sur Charger un exemple / Ouvrir un fichier).
- Définissez le Nom du type racine (
Rootpar défaut). - Copiez le code C# généré ou utilisez Télécharger pour l'enregistrer dans un fichier.
Exemple
{"id":1,"name":"A","tags":["x"]} using System.Collections.Generic;
using System.Text.Json.Serialization;
public class Root
{
[JsonPropertyName("id")]
public long Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("tags")]
public List<string> Tags { get; set; } = new();
} Quand utiliser JSON vers C#
Utilisez-le pour des clients HTTP .NET, des modèles ASP.NET ou des données de test. Pour Newtonsoft.Json, remplacez l'attribut par [JsonProperty] ; pour des montants d'argent, envisagez de remplacer double par decimal.
Comment fonctionne JSON vers C#
L'exemple est parcouru récursivement et chaque position collecte les types rencontrés. Les tableaux d'objets sont fusionnés en un seul type : une clé absente de certains éléments devient facultative, une clé nulle quelque part devient nullable, des entiers mêlés à des décimaux deviennent un type à virgule flottante, et tout autre mélange de types se rabat sur un type dynamique. Les objets imbriqués deviennent leurs propres types nommés (PascalCase de la clé, clés de tableau mises au singulier : orders → Order), avec des suffixes numériques en cas de collision de noms. La sortie C# associe les entiers à long, les décimaux à double, les chaînes à string, les booléens à bool, les tableaux à List<T>, les objets imbriqués à leurs propres classes et les valeurs dynamiques à object?. Les valeurs nullables ou facultatives reçoivent ? ; les chaînes non nullables sont initialisées à string.Empty et les listes ou objets à new(), de sorte que le code compile sans avertissement avec les types référence nullables activés.
Cas d'utilisation courants
- Désérialiser une réponse d'API avec HttpClient et System.Text.Json
- Créer des modèles de requête/réponse pour un contrôleur ASP.NET
- Modéliser des sections de configuration JSON
- Générer des classes pour des déclencheurs Azure Function
Questions Fréquentes
Pourquoi chaque propriété est-elle annotée ?
L'attribut conserve la clé JSON exacte même quand le nom C# diffère : la sérialisation fait ainsi l'aller-retour quelle que soit la politique de nommage.
Pourquoi double plutôt que decimal ?
JSON n'a pas de type décimal ; double correspond à ce que produit l'analyseur. Utilisez decimal pour les valeurs monétaires.
Fonctionne-t-il avec Newtonsoft.Json ?
Oui, après avoir remplacé [JsonPropertyName] par [JsonProperty] ainsi que la directive using.