using Newtonsoft.Json.Linq;
public static void Main()
JsonConvert.DeserializeObject(
JsonConvert.SerializeObject(new object()),
new EmptyObjectConverter()
).ShouldBeOfType<object>();
Console.WriteLine("Test passed");
Console.WriteLine(ex.Message);
public class EmptyObjectConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(object);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JToken token = JToken.Load(reader);
return token.Type == JTokenType.Null ? null : new object();
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();
public static class TestExtensions
public static void ShouldBeOfType<T>(this object obj)
if (obj == null) throw new Exception("Expected type " + typeof(T).FullName + " but object was null");
if (obj.GetType() != typeof(T)) throw new Exception("Expected type " + typeof(T).FullName + " but actual type was " + obj.GetType().FullName);