Come gestire valori null / vuoti in JsonConvert.DeserializeObject

Ho il codice seguente:

return (DataTable)JsonConvert.DeserializeObject(_data, (typeof(DataTable))); 

Quindi, ho provato:

 var jsonSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; return (DataTable)JsonConvert.DeserializeObject(_data, jsonSettings); 

La linea di ritorno sta generando l’errore:

{“Errore durante la conversione del valore \” \ “per digitare ‘System.Double’.”}

Un sacco di soluzioni online suggeriscono la creazione di Class personalizzate con tipi nullable ma questo non funzionerà per me. Non posso aspettarmi che il JSON sia in un certo formato. Non ho controllo sul numero di colonne, sul tipo di colonna o sui nomi di colonna.

È ansible fornire le impostazioni a JsonConvert.DeserializeObject per indicare come gestire valori null, in questo caso e molto altro:

 var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore }; var jsonModel = JsonConvert.DeserializeObject(jsonString, settings); 

È ansible sottoscrivere l’evento “Errore” e ignorare gli errori di serializzazione come richiesto.

  static void Main(string[] args) { var a = JsonConvert.DeserializeObject("-- JSON STRING --", new JsonSerializerSettings { Error = HandleDeserializationError }); } public static void HandleDeserializationError(object sender, ErrorEventArgs errorArgs) { var currentError = errorArgs.ErrorContext.Error.Message; errorArgs.ErrorContext.Handled = true; }