.NET 5
06.04.2021, 08:50 Uhr
JSON-Daten in nur einer Zeile Code laden
Mit .NET 5 hat Microsoft den Namensraum System.Net.Http.Json aufgebohrt.
(Quelle: .NET)
Mit der Klasse JsonSerialize aus dem Namensraum System.Text.Json bot .NET erstmals die Möglichkeit, Json zu serialisieren und zu deserialisieren. Bislang musste man dafür zusätzliche Pakete wie JSON.NET von Newtonsoft verwenden.
Mit System.Text.Json funktionierte dann das:
var t = System.Text.Json.JsonSerializer.Deserialize<List<Item>>
("[
{
\"userId\": 1,
\"id\": 1,
\"title\": \"sunt aut facere\",
\"body\": \"quia et\"
}
]"
);
Meist kommen solche Json-Daten von einem Server im Web. Deshalb gilt es zuerst die Daten vom Server zu holen und sie dann zu deserialisieren.
Mit .NET 5 lässt sich das nun in einer Zeile vollziehen.
HttpClient client = new HttpClient();
var s = await client.GetFromJsonAsync<List<Item>>
("https://jsonplaceholder.typicode.com/posts");
Dafür muss der Namensraum System.Net.Http.Json referenziert sein.
Neben GetFromJsonAsync gibt es dort noch die Methoden PutAsJsonAsync und PostAsJsonAsync, die Daten mit den HTTP-Methoden Put und Post zum Server schicken.