From 466add54a263fd30400d94491ad2e4a28e2b5b42 Mon Sep 17 00:00:00 2001 From: Ivan Josipovic <9521987+IvanJosipovic@users.noreply.github.com> Date: Mon, 25 Aug 2025 21:57:14 -0700 Subject: [PATCH] feat(json): add overloads for Deserialize and Serialize Updated `KubernetesJson.cs` to include additional overloads for the `Deserialize` and `Serialize` methods. New methods now support `JsonDocument`, `JsonElement`, and `JsonNode` types, enhancing JSON handling capabilities within the Kubernetes library. --- src/KubernetesClient/KubernetesJson.cs | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/KubernetesClient/KubernetesJson.cs b/src/KubernetesClient/KubernetesJson.cs index d0d4e9d13..b9f47774e 100644 --- a/src/KubernetesClient/KubernetesJson.cs +++ b/src/KubernetesClient/KubernetesJson.cs @@ -1,4 +1,5 @@ using System.Globalization; +using System.Text.Json.Nodes; using System.Text.RegularExpressions; using System.Xml; @@ -106,9 +107,39 @@ public static TValue Deserialize(Stream json, JsonSerializerOptions json return JsonSerializer.Deserialize(json, jsonSerializerOptions ?? JsonSerializerOptions); } + public static TValue Deserialize(JsonDocument json, JsonSerializerOptions jsonSerializerOptions = null) + { + return JsonSerializer.Deserialize(json, jsonSerializerOptions ?? JsonSerializerOptions); + } + + public static TValue Deserialize(JsonElement json, JsonSerializerOptions jsonSerializerOptions = null) + { + return JsonSerializer.Deserialize(json, jsonSerializerOptions ?? JsonSerializerOptions); + } + + public static TValue Deserialize(JsonNode json, JsonSerializerOptions jsonSerializerOptions = null) + { + return JsonSerializer.Deserialize(json, jsonSerializerOptions ?? JsonSerializerOptions); + } + public static string Serialize(object value, JsonSerializerOptions jsonSerializerOptions = null) { return JsonSerializer.Serialize(value, jsonSerializerOptions ?? JsonSerializerOptions); } + + public static string Serialize(JsonDocument value, JsonSerializerOptions jsonSerializerOptions = null) + { + return JsonSerializer.Serialize(value, jsonSerializerOptions ?? JsonSerializerOptions); + } + + public static string Serialize(JsonElement value, JsonSerializerOptions jsonSerializerOptions = null) + { + return JsonSerializer.Serialize(value, jsonSerializerOptions ?? JsonSerializerOptions); + } + + public static string Serialize(JsonNode value, JsonSerializerOptions jsonSerializerOptions = null) + { + return JsonSerializer.Serialize(value, jsonSerializerOptions ?? JsonSerializerOptions); + } } }