12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System;
- using System.Buffers;
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- using System.Text.Encodings.Web;
- using System.Text.Json;
- namespace TEAMModelOS.SDK.Extension
- {
- public static class JsonExtensions
- {
- public static string ToJsonString(this JsonDocument jdoc)
- {
- var bufferWriter = new ArrayBufferWriter<byte>();
- using var writer = new Utf8JsonWriter(bufferWriter, new JsonWriterOptions { Indented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping });
- jdoc.WriteTo(writer);
- writer.Flush();
- return Encoding.UTF8.GetString(bufferWriter.WrittenSpan);
- }
- public static string ToJsonString(this JsonElement jelement)
- {
- var bufferWriter = new ArrayBufferWriter<byte>();
- using var writer = new Utf8JsonWriter(bufferWriter, new JsonWriterOptions { Indented = true, Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping });
- jelement.WriteTo(writer);
- writer.Flush();
- return Encoding.UTF8.GetString(bufferWriter.WrittenSpan);
- }
- public static string ToJsonString(this Object obj, JsonSerializerOptions option = null)
- {
- if (option == null) {
- option = new System.Text.Json.JsonSerializerOptions
- {
- Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
-
- };
- }
- var json = JsonSerializer.Serialize(obj, option);
- return json;
- }
- public static T ToObject<T>(this string json, JsonSerializerOptions option = null)
- {
- var obj = JsonSerializer.Deserialize<T>(json);
- return obj;
- }
- public static T ToObject<T>(this JsonDocument jdoc, JsonSerializerOptions options = null)
- {
- if (options == null)
- {
- options = new System.Text.Json.JsonSerializerOptions
- {
- Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
- };
- }
- return jdoc.RootElement.ToObject<T>(options);
- }
- public static T ToObject<T>(this JsonElement jelement, JsonSerializerOptions options = null)
- {
- if (options == null)
- {
- options = new System.Text.Json.JsonSerializerOptions
- {
- Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
- };
- }
- var bufferWriter = new ArrayBufferWriter<byte>();
- using var writer = new Utf8JsonWriter(bufferWriter);
- jelement.WriteTo(writer);
- writer.Flush();
- return JsonSerializer.Deserialize<T>(bufferWriter.WrittenSpan, options);
- }
- }
- }
|