Tipp der Woche 31.03.2022, 11:43 Uhr

.NET/Visual Studio: Json laden, seltsame Exception vermeiden

Json aus dem Web zu laden geht so einfach – und bringt manchmal so seltsame Fehlermeldungen.
(Quelle: B.Lauer)
Sie wollen einen String im Json-Format laden und in einer Klasse in Ihrem C#-Programm zur Verfügung stellen. Das geht einfach über:
using System.Net.Http; 
using System.Text.Json;

HttpClient client = new HttpClient();
string s = await client.GetStringAsync(url);
Group[] group = JsonSerializer.Deserialize<Group[]>(s);
Dank des Namensraums System.Text.Json bietet ja .NET einen Serialisierer und Deserialisierer für Json und Sie müssen nicht mehr das zusätzliche NuGet-Paket Json.NET von Newtonsoft dazuladen. Sollten Sie bei dieser Abfrage die folgende, wenig aussagekräftige Exception erhalten,
The JSON value could not be converted to Root. Path: $ | LineNumber: 0 | BytePositionInLine: 1. 
dann überprüfen Sie, ob die Klassenhierarchie tatsächlich auf die Hierarchie des Json-Strings passt.
Übrigens: Die Klassenhierarchie lässt sich in Visual Studio sehr einfach erzeugen: Kopieren Sie das komplette Json, das Sie einlesen wollen. Wählen Sie in Visual Studio dann den Menüpunkt "Bearbeiten | Inhalte einfügen | Json als Klassen einfügen" und schon haben Sie eine fertige Klassenhierarchie.


Das könnte Sie auch interessieren