Neu in .NET 10.0 [37]: GetPropertyCount() in der Klasse JsonElement

Die Klasse JsonElement bietet nun die Methode GetPropertyCount() zum Zählen der Attributwerte.

vorlesen Druckansicht 4 Kommentare lesen
Verkehrsschild mit Aufschrift .NET

(Bild: Pincasso / Shutterstock.com)

Lesezeit: 1 Min.
Von
  • Dr. Holger Schwichtenberg
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

In System.Text.Json Version 10.0 hat Microsoft die Klasse JsonElement um die Methode GetPropertyCount() erweitert, mit der man ermitteln kann, wie viele Eigenschaften ein JSON-Objekt besitzt. Details dazu finden sich im zugehörigen Issue auf GitHub.

Der Dotnet-Doktor – Holger Schwichtenberg
Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

Folgender Code zeigt den Einsatz der neuen Methode:

// Neu in .NET 10.0: GetPropertyCount()
JsonElement element2 = JsonSerializer.Deserialize<JsonElement>("""{ "ID" : 1, "Name" : "Dr. Holger Schwichtenberg", "Website": "www.IT-Visions.de" }""");
Console.WriteLine(element2.ToString());
Console.WriteLine(element2.ValueKind);
Console.WriteLine($"Anzahl der Eigenschaften: {element2.GetPropertyCount()}"); // 3

Videos by heise

Bisher war es nur möglich, die Anzahl der Objekte in einem Array zu ermitteln:

// Alt: GetArrayLength()
JsonElement element1 = JsonSerializer.Deserialize<JsonElement>("""[ 1, 2, 3, 4 ]""");
Console.WriteLine(element1.ToString());
Console.WriteLine(element1.ValueKind);
Console.WriteLine($"Anzahl der Elemente: {element1.GetArrayLength()}"); // 4

(rme)