From b74ee18fdecbe3540fd1635d3be74ba27f2f23b5 Mon Sep 17 00:00:00 2001 From: Ivan Josipovic <9521987+IvanJosipovic@users.noreply.github.com> Date: Wed, 27 Aug 2025 11:28:09 -0700 Subject: [PATCH] feat(json): add overloads for Deserialize and Serialize (#1652) 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 d0d4e9d..b9f4777 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 @@ namespace k8s 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); + } } }