<PackageReference Include="NJsonSchema" Version="10.3.6" />

SystemTextJsonUtilities

public static class SystemTextJsonUtilities
Utility methods for dealing with System.Text.Json.
using Namotion.Reflection; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Serialization; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace NJsonSchema.Generation { public static class SystemTextJsonUtilities { internal class SystemTextJsonContractResolver : DefaultContractResolver { private readonly dynamic _serializerOptions; public SystemTextJsonContractResolver(dynamic serializerOptions) { _serializerOptions = serializerOptions; } protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) { object[] customAttributes = member.GetCustomAttributes(true); JsonProperty jsonProperty = base.CreateProperty(member, memberSerialization); jsonProperty.Ignored = (EnumerableExtensions.FirstAssignableToTypeNameOrDefault<object>((IEnumerable<object>)customAttributes, "System.Text.Json.Serialization.JsonIgnoreAttribute", 1) != null || EnumerableExtensions.FirstAssignableToTypeNameOrDefault<object>((IEnumerable<object>)customAttributes, "System.Text.Json.Serialization.JsonExtensionDataAttribute", 1) != null); if (_serializerOptions.PropertyNamingPolicy != null) jsonProperty.PropertyName = (string)_serializerOptions.PropertyNamingPolicy.ConvertName(member.Name); dynamic val = EnumerableExtensions.FirstAssignableToTypeNameOrDefault<object>((IEnumerable<object>)customAttributes, "System.Text.Json.Serialization.JsonPropertyNameAttribute", 1); dynamic val2 = val != null; if ((val2 ? false : true) ? val2 : (val2 & !string.IsNullOrEmpty(val.Name))) jsonProperty.PropertyName = (string)val.Name; return jsonProperty; } } public static JsonSerializerSettings ConvertJsonOptionsToNewtonsoftSettings(dynamic serializerOptions) { JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings(); jsonSerializerSettings.ContractResolver = new SystemTextJsonContractResolver(serializerOptions); JsonSerializerSettings jsonSerializerSettings2 = jsonSerializerSettings; if (((IEnumerable)serializerOptions.Converters).OfType<object>().Any((object c) => TypeExtensions.IsAssignableToTypeName(c.GetType(), "System.Text.Json.Serialization.JsonStringEnumConverter", 1))) jsonSerializerSettings2.Converters.Add(new StringEnumConverter()); return jsonSerializerSettings2; } } }