using Newtonsoft.Json.Linq;
[JsonConverter(typeof(SupplierDataConverter))]
public object Data { get; set; }
public class DummyObject {
public int Id { get; set; }
public string Name { get; set; }
class SupplierDataConverter : JsonConverter
public override bool CanConvert(Type objectType)
return (objectType == typeof(DummyData) || objectType == typeof(int));
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JToken token = JToken.Load(reader);
if (token.Type == JTokenType.Object)
return token.ToObject<DummyObject>();
if(token.Type == JTokenType.Integer)
return token.ToObject<int>();
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
serializer.Serialize(writer, value);
public static void Main()
Console.WriteLine("--------------------");
Console.WriteLine("{0}", JsonConvert.DeserializeObject<DummyData>(firstEx).Data);
Console.WriteLine("--------------------");
Console.WriteLine("{0}", JsonConvert.DeserializeObject<DummyData>(secondEx).Data);