例如,我写这样的代码
bool hasCustomer = true;
JObject j = JObject.FromObject(new
{
customer = hasCustomer? new
{
name = "mike",
age = 48
}:null
});
JObject c = (JObject)j["customer"];
if (c != null)
string name = (string) c["name"];
这工作正常。
但是如果我设置 hasCustomer = false;
JObject c = (JObject)j["customer"];
将抛出 System.InValidCastException:
Unable to cast object of type 'Newtonsoft.Json.Linq.JValue' to type 'Newtonsoft.Json.Linq.JObject'.
我期待应该将 null 分配给 JObject c,因为 JObject 可以为空。
那么,处理这样的事情的最佳方法是什么?