public static void Main()
TestJson("{\"Values\":{\"TestString\":\"test\",\"TestNumber\":1}}");
TestJson("{\"SomethingElse\": \"Not right!\"}");
private static void TestJson(string json)
var parsed = TryDeserializeObject<JsonClass>(json, out JsonClass result);
var message = parsed ? "Parsed: " : "Unable to parse: ";
Console.WriteLine(message + json);
private static bool TryDeserializeObject<T>(string json, out T deserializedObject) where T : class
deserializedObject = null;
if (!String.IsNullOrWhiteSpace(json))
var settings = new JsonSerializerSettings()
MissingMemberHandling = MissingMemberHandling.Error,
Error = (object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args) =>
args.ErrorContext.Handled = true;
deserializedObject = JsonConvert.DeserializeObject<T>(json, settings);
public JsonValuesClass Values { get; set; }
public class JsonValuesClass
public string TestString { get; set; }
public int TestNumber { get; set; }