using System.Collections.Generic;
using Newtonsoft.Json.Converters;
[JsonConverter(typeof(StringEnumConverter))]
private string stateString;
if (Enum.TryParse(stateString, out parsedStatus))
stateString = value.ToString();
public static void Main()
MyClass myInstance = new MyClass(){ State = Status.AwaitingApproval };
Console.WriteLine(JsonConvert.SerializeObject(myInstance));
MyClass myObj = JsonConvert.DeserializeObject<MyClass>("{'stateString': 'Accepted'}");
Console.WriteLine(myObj.State);
myObj = JsonConvert.DeserializeObject<MyClass>("{'stateString': 'Unsupported'}");
Console.WriteLine(myObj.State);