using System.Collections.Generic;
using Newtonsoft.Json.Converters;
public static void Main()
var defaultSettings = new JsonSerializerSettings();
var stringEnumSettings = new JsonSerializerSettings { Converters = new List<JsonConverter>(1) { new StringEnumConverter() } };
var defaultSer = JsonConvert.SerializeObject(new SomeClass { Val = SomeEnum.Other }, defaultSettings);
Console.WriteLine(defaultSer);
var stringSer = JsonConvert.SerializeObject(new SomeClass { Val = SomeEnum.Other }, stringEnumSettings);
Console.WriteLine(stringSer);
Console.WriteLine(JsonConvert.DeserializeObject<SomeClass>(@"{""Val"":10}", stringEnumSettings).Val);
Console.WriteLine(JsonConvert.DeserializeObject<SomeClass>(@"{""Val"":""Magic""}", stringEnumSettings).Val);
Console.WriteLine(JsonConvert.DeserializeObject<SomeClass>(@"{""Val"":""None"" }", stringEnumSettings).Val);
public SomeEnum Val { get; set; }