none
Neue Json Lib von MS System.Text.Json RRS feed

  • General discussion

  • 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



    Tuesday, June 25, 2019 11:42 AM

All replies

  • Hallo Thomas,

    Vielen Dank, dass Du dieses Problem aufgeworfen und das Verfahren zu seiner Behebung mitgeteilt hast.

    Gruß,
    Dimitar

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Wednesday, June 26, 2019 11:22 AM
    Moderator