如果密钥不存在,此代码将引发异常。
例如,如果键存在于数组索引中的位置,那么即使值是null
,代码也是可以的。但是,如果密钥不存在,则代码会抛出异常。select令牌括号中的代码是动态的(一个字符串变量)。
r["Value"] = json.SelectToken($.Objectives[x].state).ToString() ?? "";
发布于 2016-02-24 21:39:20
不能对空值调用ToString()。
JToken value = json.SelectToken("$.Objectives[x].state");
r["Value"] = (value != null) ? value.ToString() : "";
发布于 2016-02-24 20:48:41
如果x不存在,可以使用tenary运算符返回默认值。
r["Value"] = $.Objectives[x] ?
json.SelectToken($.Objectives[x].state).ToString() ?? "
: '';
或
r["Value"] = x >= $.Objectives.Length ?
json.SelectToken($.Objectives[x].state).ToString() ?? "
: '';
我不知道你为什么要用双引号结束这句话。也许是打错字?但我没修好,那是你刚开始的代码。
发布于 2016-02-24 21:44:24
在javascript中,如果给定变量有一个值,它将返回true
如下:
if(r["Value"]){
//this only runs if r["Value"] exists
}
https://stackoverflow.com/questions/35612322
复制相似问题