123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System.Buffers;
- using System.Text;
- using System.Text.Encodings.Web;
- using System.Text.Json;
- using System.Text.Json.Nodes;
- using System.Text.Unicode;
- using System.Xml.Linq;
- namespace IES.ExamServer
- {
- public static class JsonExtensions
- {
- private static readonly JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions
- {
- Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
- };
- public static string ToJsonString(this JsonElement json)
- {
- return JsonSerializer.Serialize(json, jsonSerializerOptions);
- }
- public static string ToJsonString(this Object obj)
- {
- return JsonSerializer.Serialize(obj, jsonSerializerOptions);
- }
- public static string ToJsonString(this JsonNode node)
- {
- return JsonSerializer.Serialize(node, jsonSerializerOptions);
- }
- public static T? ToObject<T>(this JsonElement json) where T : class
- {
- return JsonSerializer.Deserialize<T>(json.GetRawText(), jsonSerializerOptions);
- }
- public static T? ToObject<T>(this string json) where T : class
- {
- try
- {
- return JsonSerializer.Deserialize<T>(json, jsonSerializerOptions);
- }
- catch (JsonException ex)
- {
- return null;
- // throw new InvalidOperationException("Failed to deserialize JSON.", ex);
- }
- }
- public static T? ToObject<T>(this JsonNode json) where T : class
- {
- return JsonSerializer.Deserialize<T>(json, jsonSerializerOptions!);
- }
- }
- }
|