using System.Collections.Generic;
using Newtonsoft.Json.Serialization;
public static void Main()
var jsonStr = "[{ \"Name\": \"abc\", \"MyEnumValue\": \"Type1\" }, { \"Name\": \"abcd\", \"MyEnumValue\": \"Type2\" },{ \"Name\": \"abcde\", \"MyEnumValue\": \"Type3\" }, { \"Name\": \"abcdef\", \"MyEnumValue\": \"Type4\" } ]";
var serializationSettings = new JsonSerializerSettings
Error = HandleDeserializationError
var lst = JsonConvert.DeserializeObject<List<MyClass>>(jsonStr, serializationSettings);
var obj = lst.FirstOrDefault(x=>x.Name == "abcdef");
Console.WriteLine(obj.Name);
Console.WriteLine(obj.MyEnumValue);
public static void HandleDeserializationError(object sender, ErrorEventArgs errorArgs)
errorArgs.ErrorContext.Handled = true;
var currentObj = errorArgs.CurrentObject as MyClass;
if (currentObj == null) return;
currentObj.MyEnumValue = MyEnum.Type2;
public string Name { get; set; }
public MyEnum MyEnumValue { get; set; }