AVE*_*imi 5 c# json nullable json.net
为什么这段代码不运行,我想检查JSON是否包含key的整数PurchasedValue?():
public PropertyInfo(Newtonsoft.Json.Linq.JToken jToken)
{
    this.jToken = jToken;
    int PurchasedValue = (int)(jToken["PurchasedValue"].Value ?? 0);
}
错误是:
Error CS0019: Operator `??' cannot be applied to operands of type `method group' and `int' (CS0019) 
从我的理解jToken["PurchasedValue"]是一个可以为空的价值.你必须使用
int PurchasedValue = (int)(jToken["PurchasedValue"]?? 0);
nullableObj.Value 只有在有值时才可以使用而不会出错 nullableObj
否则你可以使用喜欢
int PurchasedValue = jToken["PurchasedValue"].HasValue?jToken["PurchasedValue"].Value: 0;
这可能甚至不需要类型铸造
您可以比较令牌类型:
var purchasedValueToken = jToken["PurchasedValue"];
int purchasedValue = purchasedValueToken.Type == JTokenType.Null ? 0 : purchasedValueToken.Value<int>();