CSharp · Console
using System;
using System.Runtime.Serialization;
using System.Text.Json;
using System.Text.Json.Serialization;
public class Program
{
private enum Status {
Open,
Closed,
[EnumMember(Value = "NOT_AVAILABLE")]
NotAvailable
}
private class MyJson {
[JsonPropertyName("user_name")]
public string UserName {get; set;} = string.Empty;
[JsonConverter(typeof(JsonStringEnumConverter))]
[JsonPropertyName("status")]
public Status? Status {get; set;}
public override string ToString() => $"{{UserName: {UserName}, Status: {Status}}}";
}
public static void Main()
{
string input;
Object obj;
input = @"{ ""user_name"": ""jdoe"", ""status"": ""CLOSED"" }";
obj = JsonSerializer.Deserialize<MyJson>(input);
Console.WriteLine($"Hello World, {obj}");
Console.WriteLine("");
input = @"{ ""user_name"": ""jdoe"", ""status"": ""NOT_AVAILABLE"" }";
obj = JsonSerializer.Deserialize<MyJson>(input);
Console.WriteLine($"Hello World, {obj}");
}
}