.NET und JSON 18.06.2019, 04:00 Uhr

Neuer Namensraum für .NET Core 3.0

Die Version .NET Core 3.0, von der gerade die Preview erschienen ist, wird neue Funktionen zum Umgang mit JSON-Daten anbieten.
(Quelle: Shutterstock.com/Carlos Amarillo)
Dazu wird .NET Core 3.0, das im Herbst seinen finalen Status erreichen soll, den neuen Namensraums System.Text.Json enthalten. Dieser Namensraum wird Reader und Writer bieten, ein DOM und einen Serializer. JSON hat sich in den letzten Jahren zu einem sTandardformat gemausert und in vielen Fällen sogar XML den Rang abgelaufen. Bislang hat sich Microsoft bei .NET auf Json.NET von NewtonSoft verlassen. Die Gründe, eine neue Bibliothek für JSON in .NET aufzunehmen sind:
  • schnellere APIs: Sie nutzen Span<T>/Span(Of T) und können UTF-8 direkt verarbeiten, ohne entsprechende Zeichenfolgen erst in UTF-16-Strings umzuwandeln. Microsoft glaubt, damit je nach Anwendungsfall eine 1,3- bis 5-fache Verarbeitungsgeschwindigkeit von JSON-Daten erreichen zu können.
  • keine Abhängigkeit mehr von ASP.NET Core von Json.NET: Derzeit ist ASP.NET Core auf die Json.NET-Bibliothek angewiesen, das eng mit ASP.NET Core verwoben ist. Das verringert die Abhängigkeit bei Versionswechseln.
  • Bereitstellen eines ASP.NET Core Integration Packages für Json.NET: Entwickler, die Json.NET nutzen, müssen nicht fürchten, dass sie in .NET Core 3.0 nun auf System.Text.Json umsteigen müssen. Microsoft wird via NuGet ein ASP.NET Core Integration Packages für Json.NET zur Verfügung stellen.
Die Umwandlung eines .NET-Objekts wird einfach mit JsonSerializer.ToString<Typ>(Typ-Wert) bewerkstelligt. Voreingestellt wird dabei minifiziertes JSON erzeugt. Wer lesbares JSON haben will, kann dies mit einem JsonSerializerOptions-Objekt tun. Gleiches gilt für die Deserialisierung. Darüber hinaus werden sich Serialisierung und Deserialisierung mit nutzerdefinierten Attributen kontrollieren lassen. Beides, Serialisierung und Deserialisierung, wird zudem synchron und asynchron möglich sein.
Natürlich wird die Repräsentation von JSON-Daten auch gezielt durchsuchbar und verwendbar sein, dank eines DOM (also beispielsweise ein Durchlaufen der Elemente in einer Schleife, wie es Microsoft mit einem Beispiel zeigt). Ergänzt wird der neue Namensraum noch durch entsprechende Reader und Writer um Schreiben und Lesen von JSON-Daten.
In seinem .NET-Blog-Beitrag geht Immo Landwerth dann noch detailliert auf weitere Punkte ein wie die Einbindung in ASP.NET Core, ASP.NET Core MVC und SignalR und das Laufzeitverhalten.
In der aktuellen Preview von .NET Core 3.0 ist der Namensraum von Haus aus enthalten. Wer mit dem klassischen.NET Framework oder mit .NET Standard arbeitet, kann das System.Text.Json NuGet Package installieren (dabei sollten die Previews enthalten sein und Version 4.6.0-preview6.19303.8 oder höher). Wer den neuen Namensraum mit ASP.NET Core nutzen will, ist auf .NET Core 3.0 angewiesen.
Einzelheiten zum neuen Namensraum erläutert Microsoft Program Manager Immo Landwerth in seinem Blog-Beitrag Try the new System.Text.Json APIs.



Das könnte Sie auch interessieren