JSON-zu-C#-Konverter
Erzeuge C#-Klassen aus einem JSON-Beispiel direkt in deinem Browser.
Dieses Tool läuft vollständig in deinem Browser. Deine Dateien werden niemals auf einen Server hochgeladen.
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; }
}Was dieser Konverter macht
Liest einen JSON-Wert und erzeugt passende C#-Klassen: eine Klasse pro im Beispiel gefundener Objektform, jeweils mit öffentlichen automatisch implementierten Eigenschaften.
So wird er verwendet
Füge ein JSON-Objekt, -Array oder einen primitiven Wert in den Editor ein. Sofort erscheint eine `Root`-Klasse, dazu eine weitere Klasse für jede verschachtelte Objektform; eine Wurzel, die kein Objekt ist, wird in eine `Root`-Klasse mit einer einzelnen `Value`-Eigenschaft verpackt.
Beispiel
Ein Objekt mit einem String-Feld `name` und einem verschachtelten Objekt `address` erzeugt eine `Root`-Klasse mit `public string Name { get; set; }` sowie eine separate `Address`-Klasse für die verschachtelte Form.
Typzuordnung und Benennung
Strings werden zu `string`, ganze Zahlen zu `int`, Dezimalzahlen zu `double`, Booleans zu `bool` und Arrays zu `List<ElementType>` (mit automatisch hinzugefügter `using System.Collections.Generic`-Direktive bei Bedarf). Eigenschaftsnamen werden gemäß C#-Konvention aus dem JSON-Schlüssel in PascalCase umgewandelt — ein Schlüssel `first_name` erzeugt also eine Eigenschaft `FirstName`.
Verschachtelte Objekte und Listen
Jedes verschachtelte Objekt erhält seine eigene Klasse, erzeugt aus seinem Schlüssel. Die Reihenfolge der Klassen in der Ausgabe spielt in C# keine Rolle, da sich Klassen derselben Datei unabhängig von ihrer Deklarationsreihenfolge gegenseitig referenzieren können.
Grenzen
Da Eigenschaftsnamen in PascalCase umgewandelt werden und nicht mehr dem ursprünglichen JSON-Schlüsseltext entsprechen, benötigt eine Deserialisierung von JSON direkt in diese Klassen mit System.Text.Json oder Newtonsoft.Json für jeden nicht bereits PascalCase-Schlüssel ein manuell hinzugefügtes [JsonPropertyName]/[JsonProperty]-Attribut. Die erzeugten Klassen beschreiben nur das eine bereitgestellte JSON-Beispiel.
Datenschutz
Analyse und Codeerzeugung laufen vollständig lokal in deinem Browser. Das eingefügte JSON und der erzeugte C#-Code werden niemals hochgeladen.
Häufig gestellte Fragen
- Deserialisieren diese Klassen mein JSON automatisch?
- Nicht immer — Eigenschaftsnamen werden gemäß C#-Konvention in PascalCase umgewandelt, daher benötigt ein JSON-Schlüssel wie first_name ein Attribut [JsonPropertyName("first_name")], um bei der Deserialisierung wieder zugeordnet zu werden.
- Warum PascalCase statt des ursprünglichen JSON-Schlüssels?
- Das folgt der Standard-C#-Namenskonvention für öffentliche Eigenschaften, die die meisten C#-Entwickler in ihrem eigenen Code erwarten und verwenden.
- Wird mein JSON an einen Server gesendet?
- Nein — Analyse und C#-Erzeugung laufen vollständig lokal in deinem Browser.
Ähnliche Tools
JSON-zu-TypeScript-Konverter
Erzeuge TypeScript-Interfaces aus einem JSON-Beispiel direkt in deinem Browser.
JSON-zu-Python-Konverter
Erzeuge Python-Dataclasses aus einem JSON-Beispiel direkt in deinem Browser.
JSON-zu-Java-Konverter
Erzeuge Java-POJO-Klassen aus einem JSON-Beispiel direkt in deinem Browser.