public static void Main()
var normalJson = "{ \"updates\": [], \"ts\": \"209\" }";
var failedJson = "{ \"failed\": 1, \"ts\": 30 }";
JsonTypeGuess(normalJson);
JsonTypeGuess(failedJson);
public static void JsonTypeGuess(string json)
var options = new JsonSerializerOptions
PropertyNameCaseInsensitive = true,
Console.WriteLine($"Processing {json}");
var baseObj = JsonSerializer.Deserialize<BaseDto>(json, options);
Console.WriteLine("Error!");
var errorObj = JsonSerializer.Deserialize<ErrorDto>(json, options);
Console.WriteLine(JsonSerializer.Serialize(errorObj));
Console.WriteLine("OK!");
var normalObj = JsonSerializer.Deserialize<NormalDto>(json, options);
Console.WriteLine(JsonSerializer.Serialize(normalObj));
public int Failed { get; set; }
public class ErrorDto : BaseDto
public int Ts { get; set; }
public class NormalDto : BaseDto
public string Ts { get; set; }
public object[] Updates { get; set; }