using Newtonsoft.Json.Linq;
public static void Main()
""firstName"": ""Peter"",
JToken token = JsonHelper.DeserializeWithLowerCasePropertyNames(json);
Console.WriteLine(token.ToString());
public static class JsonHelper
public static JToken DeserializeWithLowerCasePropertyNames(string json)
using (TextReader textReader = new StringReader(json))
using (JsonReader jsonReader = new LowerCasePropertyNameJsonReader(textReader))
JsonSerializer ser = new JsonSerializer();
return ser.Deserialize<JToken>(jsonReader);
public class LowerCasePropertyNameJsonReader : JsonTextReader
public LowerCasePropertyNameJsonReader(TextReader textReader)
public override object Value
if (TokenType == JsonToken.PropertyName)
return ((string)base.Value).ToLower();