Home > Software design >  How to prevent JsonReaderException when json is not valid in JsonConvert.DeserializeObject
How to prevent JsonReaderException when json is not valid in JsonConvert.DeserializeObject

Time:01-17

I've a method that deserialize string into a type.

var data = JsonConvert.DeserializeObject<TestData>("invalid json");

If string is not valid, JsonReaderException occurring.

I want to return default value of TestData (null) when string is not valid instead of throw exception.

How can I do this without try/catch and JObject?

CodePudding user response:

You can use JsonSerializerSettings to handle it the result of it will be NULL. The reference of JsonConvert.DeserializeObject and JsonSerializerSettings.Error

var settings = new JsonSerializerSettings 
{
    Error = (se, ev) => 
    { 
        ev.ErrorContext.Handled = true; 
    } 
};
var data = JsonConvert.DeserializeObject<Currency>("invalid json", settings);
  • Related