jsonecho

XML zu C#

Fügen Sie ein XML-Dokument ein und erhalten Sie C#-Typen, die zu seiner Struktur passen.

Tool wird geladen ...

So verwenden Sie XML zu C#

  1. Fügen Sie ein repräsentatives XML-Beispiel ein, idealerweise eines, in dem alle optionalen Felder gefüllt sind.
  2. Legen Sie den Namen des Wurzeltyps fest und entscheiden Sie, ob Sie auch Hilfscode oder nur Typen haben möchten.
  3. Kopieren Sie den erzeugten C#-Code in Ihr Projekt.

Über XML zu C#

Modellklassen für eine große XML-Payload von Hand zu schreiben, ist öde, und genau dort schleichen sich Tippfehler ein. Fügen Sie hier ein Beispiel ein, und der Generator ermittelt die Struktur: welche Felder es gibt, welche Objekte, welche Arrays sind und welchen Typ jeder Wert hat. Die Ausgabe sind Klassen mit Properties. Deaktivieren Sie „Nur Typen“, und die Ausgabe enthält zusätzlich Newtonsoft.Json-Attribute und eine Converter-Klasse.

XML wird zuerst auf dieselbe Weise in JSON umgewandelt wie in unserem Tool XML zu JSON: Attribute erhalten das Präfix @_, und Textinhalt neben Attributen heißt #text. Aus diesem Ergebnis werden die C#-Typen erzeugt. Property-Namen werden in PascalCase umgewandelt und mit einem JsonProperty-Attribut versehen, damit der ursprüngliche Schlüssel erhalten bleibt.

Den erzeugten Code verwenden

Mit den Hilfsklassen rufen Sie Root.FromJson(json) auf. Bei reinen Typen verwenden Sie JsonSerializer.Deserialize<Root>(json) aus System.Text.Json und ergänzen Attribute, wenn sich die Namen unterscheiden.

Nullable-Member verwenden long?, double? und so weiter, plus Nullable-Referenztypen, wo relevant.

Häufig gestellte Fragen

Wovon hängt der erzeugte C#-Code ab?

Die Ausgabe sind Klassen mit Properties. Deaktivieren Sie „Nur Typen“, und die Ausgabe enthält zusätzlich Newtonsoft.Json-Attribute und eine Converter-Klasse.

Wie parse ich XML mit dem Ergebnis?

Wandeln Sie das XML zuerst in JSON um (unser Tool XML zu JSON macht das auf dieselbe Weise), rufen Sie dann mit den Hilfsklassen Root.FromJson(json) auf. Bei reinen Typen verwenden Sie JsonSerializer.Deserialize<Root>(json) aus System.Text.Json und ergänzen Attribute, wenn sich die Namen unterscheiden.

Wie werden optionale und fehlende Felder behandelt?

Nullable-Member verwenden long?, double? und so weiter, plus Nullable-Referenztypen, wo relevant.

Betrachtet der Generator mehr als einen Datensatz?

Er kennt nur das, was in Ihrem Beispiel steht. Fehlt ein Feld in Ihrem Beispiel, erscheint es nicht in den Typen, und ist ein Wert in Ihrem Beispiel null, ist sein Typ unbekannt. Fügen Sie ein Beispiel ein, in dem möglichst viele Felder gefüllt sind, oder ein Array mit mehreren unterschiedlichen Datensätzen.

Wird mein XML an einen Server gesendet?

Nein. Der Generator wird beim ersten Gebrauch in Ihren Browser heruntergeladen, etwa 1 MB, und alles läuft lokal.

Mehr in Daten zu Klasse

Alle Tools →