using System.ComponentModel.DataAnnotations;
using System.Text.Encodings.Web;
using System.Text.Json.Serialization;
public string? Help { get; init; }
public override string ToString()
var ss = new StringBuilder();
ss.AppendLine($"Help = {Help ?? "I'm null"}");
public static void Main()
var result = JsonSerializer.Deserialize<MyType>(testJson, Options());
Console.WriteLine(".NET object:");
Console.WriteLine(result);
var backToJson = JsonSerializer.Serialize(result, Options());
Console.WriteLine("Json:");
Console.WriteLine(backToJson);
private static JsonSerializerOptions Options()
return new JsonSerializerOptions(JsonSerializerDefaults.Web)
PropertyNameCaseInsensitive = true,
Converters = { new JsonStringEnumConverter() },
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,