Hallo,
mit .NET Core 3 (und als
Nuget preview Paket) ist nun unter System.Text.Json ein vernünftiger Json parser vorhanden. Da die Lib Span<T> nutzt soll sie noch schneller als Json.NET sein. Weiteres im
MS-Blog
Die Verwendung ist recht simpel
class Program
{
public class MyJsonTest
{
public string Name { get; set; }
public int Old { get; set; }
}
static void Main(string[] args)
{
var model = new MyJsonTest() { Name = "Thomas", Old = 38 };
var json = System.Text.Json.Serialization.JsonSerializer.ToString(model);
model = System.Text.Json.Serialization.JsonSerializer.Parse<MyJsonTest>(json);
}
}
Ich will euch natürlich nicht langweilen und bin mir sicher das Ihr das schon kennt. Mir geht es vor allem darum Probleme beim umstieg von Json.NET an einer stelle zu bündeln.
Ein Problem ist mir auch schon aufgefallen.
Wenn man ein Model von einer ASP.NET Core Rest WebApi (Version 2.2 u. 3.0) bezieht, bekommt man ein Json zurück. ASP.NET Core ändert scheinbar den ersten Buchstaben der Eigenschaft in einen kleinen Buchstaben. Aus NameDerEigenschaft wird nameDerEigenschaft.
Warum das ASP.NET Core macht, soll hier nicht das Thema sein.
Json.Net scheint das selbst zu kompensieren. Die Json lib von MS nicht.
Das Problem ist aber einfach mit den JsonSerializerOptions zu beheben
model = System.Text.Json.Serialization.JsonSerializer.Parse<MyJsonTest>(json, new System.Text.Json.Serialization.JsonSerializerOptions() { PropertyNameCaseInsensitive = true });
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets,
UI Strings