Lesedauer 2 Minuten

Als typisierte Sprache kann CSharp JSON-Daten sehr effizient in vorab definierte Klassen parsen. Doch was ist, wenn man keine Klasse definieren kann oder möchte? Dieser Beitrag zeigt, wie man in CSharp generischen JSON Code dennoch verarbeiten kann.

Generische JSON-Daten in CSharp verarbeiten

Zuerst installieren wir das NewtonSoft JSON Paket:

Der folgende Beispiel-Code illustriert das CSharp generic JSON Parsing und enthält alles, was Du wissen musst:

Wie funktioniert das generic JSON Parsing in CSharp ?

Bitte beachte, daß beim Verarbeiten von generischem JSON-Code Null-Werte in den JSON-Daten vorhanden sein können. Daher sollte der o.g. Beispiel-Code noch um entsprechende Null-Checks oder Try-Catch Blöcke erweitert werden.

Der Einfachheit halber wurden diese weg gelassen.

Nun zum Code:

Zeile 1: 
Um beliebigen JSON-Code ohne Klassen einzulesen, benötigen wir Newtonsoft.Json.Linq aus dem NewtonSoft JSON Paket.

Zeile 5 bis 17:
Hier wird eine JSON-Datenstruktur als String definiert und in jsonObject geparsed.

Zeile 21-26:
Über jsonObject können nun die einzelnen JSON-Felder ausgelesen werden. Typecasting sorgt dafür, daß diese in typisierten Variablen landen.

Natürlich können so auch Teilstrukturen einer komplexen JSON-Datenstruktur in definierte Klassen eingelesen werden. So bleibt der Schreibaufwand gering.

Zeile 30-31:
Hier siehst Du, wie man die Existenz eines JSON-Felds prüfen kann – als Alternative zu Null-Checks.

Zeile 35-45:
Dieser Teil zeigt, wie man in CSharp über verschachtelte JSON-Strukturen iterieren kann.

Die Ausgabe unseres Beispiels sieht dann so aus:

Fazit

Über Newtonsoft.Json.Linq können in CSharp generische JSON-Daten elegant in typisierte Variablen eingelesen werden. Ganz ohne Klassen oder auch mit Klassen, die nur für Teilstrukturen definiert wurden.

Mehr zu CSharp

 

Hat Dir der Beitrag gefallen?

Wenn Du Fragen oder Anmerkungen zu diesem Beitrag hast, dann starte einen Kommentar. DANKE für Dein Feedback!