我试图修复我已经制作的WinForms程序中的错误;我正在解析JSON字符串,然后将一些结果放入各种变量中。
有时,JSON的特定元素不存在(出于真正的原因),所以我尝试使用以下代码处理它:
int scriptVersion;
if ((int)token.SelectToken("scriptVersion") == null)
{
scriptVersion = 0;
}
else
{
scriptVersion = (int)token.SelectToken("scriptVersion");
}
这仍然会引发一个' Value不能为null'这段代码第二行中的错误 - 我应该做一些不同的事情来处理JSON中不存在该元素的情况吗?
答案 0 :(得分:6)
您正在将JToken转换为value type的int。值类型不能为空。
JToken.SelectToken方法返回一个JToken对象,它是一个引用类型,因此可以为null。删除演员,它应该工作。
if (token.SelectToken("scriptVersion") == null)
答案 1 :(得分:0)
万一有人想知道,VB.Net版本将显示为:
If token.SelectToken("scriptVersion") Is Nothing
以前给出的答案对我很有帮助!