using Newtonsoft.Json.Linq;
public static void Main()
var jObjectFromEmptyString = JsonConvert.DeserializeObject<JObject>(string.Empty);
Console.WriteLine(jObjectFromEmptyString == null ? "null" : jObjectFromEmptyString.ToString());
Console.WriteLine(ex.GetType().FullName + ": " + ex.Message.Replace("\n", " "));
var jObjectFromNullValue = JsonConvert.DeserializeObject<JObject>(@"null");
Console.WriteLine(jObjectFromNullValue == null ? "null" : jObjectFromNullValue.ToString());
Console.WriteLine(ex.GetType().FullName + ": " + ex.Message.Replace("\n", " "));
var jObjectFromEmptyJson = JsonConvert.DeserializeObject<JObject>(@"{}");
Console.WriteLine(jObjectFromEmptyJson == null ? "null" : jObjectFromEmptyJson.ToString());
Console.WriteLine(ex.GetType().FullName + ": " + ex.Message.Replace("\n", " "));
var jObjectFromNull = JsonConvert.DeserializeObject<JObject>(null);
Console.WriteLine(jObjectFromNull == null ? "null" : jObjectFromNull.ToString());
Console.WriteLine(ex.GetType().FullName + ": " + ex.Message.Replace("\n", " "));
var jObjectFromIncorrectFormat = JsonConvert.DeserializeObject<JObject>(@"<html></html>");
Console.WriteLine(jObjectFromIncorrectFormat == null ? "null" : jObjectFromIncorrectFormat.ToString());
Console.WriteLine(ex.GetType().FullName + ": " + ex.Message.Replace("\n", " "));