Neu in .NET 10.0 [41]: JSON Patch für Mengen und primitive Typen

JSON Patch in System.Text.Json kann man auch auf Mengen anwenden – und auch auf primitive Typen.

vorlesen Druckansicht
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 .NET 10.0 ist es möglich, JSON Patch auf Arrays anzuwenden.

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.

Das folgende Beispiel mit System.Text.Json Version 10.0 zeigt ein JsonPatchDocument, das ein Zahlenarray verändert:

List<int> Zahlen = [1, 2, 3, 4, 5];
 
string jsonPatchZahlen = """
[
  { "op": "add", "path": "/2", "value": 42 },
  { "op": "remove", "path": "/0" },
  { "op": "replace", "path": "/2", "value": 99 },
  { "op": "test", "path": "/0", "value": 2 },
  { "op": "test", "path": "/1", "value": 42 },
  { "op": "test", "path": "/2", "value": 99 },
  { "op": "test", "path": "/3", "value": 4 },
  { "op": "test", "path": "/4", "value": 5 }
]
""";
  JsonPatchDocument<List<int>>? patchZahlen = JsonSerializer.Deserialize<JsonPatchDocument<List<int>>>(jsonPatchZahlen);
  patchZahlen!.ApplyTo(Zahlen, patchError => CUI.PrintError(patchError.ErrorMessage));
 
foreach (var z in Zahlen)
  {
   Console.WriteLine(z);
  }

Ausgabe des Codebeispiels

(rme)