我正在使用Newtonsoft的Json.NET来反序列化一个JSON字符串:
var output = JsonConvert.DeserializeObject<dynamic>("{ 'foo': 'bar' }");
如何检查 output
是否为空?一个示例测试案例:
var output = JsonConvert.DeserializeObject<dynamic>("{ }");
Assert.IsNull(output); // fails
我正在使用Newtonsoft的Json.NET来反序列化一个JSON字符串:
var output = JsonConvert.DeserializeObject<dynamic>("{ 'foo': 'bar' }");
如何检查 output
是否为空?一个示例测试案例:
var output = JsonConvert.DeserializeObject<dynamic>("{ }");
Assert.IsNull(output); // fails
您从DeserializeObject获取的对象将是JObject,它具有Count属性。此属性告诉您对象上有多少个属性。
var output = JsonConvert.DeserializeObject<dynamic>("{ }");
if (((JObject)output).Count == 0)
{
// The object is empty
}
这并不能告诉你一个动态对象是否为空,但它可以告诉你反序列化后的JSON对象是否为空。
T
,而不是 JObject
。 - Kirk Woll((JToken)output).Count()
。 - Hilton Giesenowvar output = JsonConvert.DeserializeObject<dynamic>("{ }");
if (output as JObject == null)
{
}
这对我有用。
var output = JsonConvert.DeserializeObject<dynamic>("{ }");
if (output.ToString() =="{ }")
{
// The object is empty
}