I'm trying to write a generic method that will take a JSON string and convert it to a DataTable (the best it can).
It works fine until it comes across a JSON object that has an array as one of the properties.
What I would like to do, is ignore the properties that are arrays and convert as best it can.
I have an example fiddle that explains what I am trying to do: https://dotnetfiddle.net/cgkNov
public static void Main()
{
const string JsonObject = @"[{Id:""672af604-495b-4dc0-933e-6c55f56bef82"",""Name"":""1"",""MyArray"":[]}]";
const string EndResultJsonObject = @"[{Id:""672af604-495b-4dc0-933e-6c55f56bef82"",""Name"":""1""}]";
var settings = new JsonSerializerSettings
{
Error = (obj, args) =>
{
var context = args.ErrorContext;
context.Handled = true;
}
};
var a = JsonConvert.DeserializeObject<DataTable>(JsonObject, settings);
Console.WriteLine(JsonConvert.SerializeObject(a));
a = JsonConvert.DeserializeObject<DataTable>(EndResultJsonObject, settings);
Console.WriteLine(JsonConvert.SerializeObject(a));
}
Thanks, Alex