C# Newtonsoft - 值不能为空

标签 c# json

我正在尝试修复我编写的 WinForms 程序中的错误;我正在解析一个 JSON 字符串,然后将一些结果放入各种变量中。

有时,JSON 的特定元素不存在(出于真正的原因),因此我尝试使用以下代码来处理该问题:

        int scriptVersion;
        if ((int)token.SelectToken("scriptVersion") == null)
        {
            scriptVersion = 0;
        }
        else
        {
            scriptVersion = (int)token.SelectToken("scriptVersion");
        }

这仍然会在此代码的第二行中引发“值不能为空”错误 - 我是否应该做一些不同的事情来处理 JSON 中不存在该元素的情况?

最佳答案

您正在将 JToken 转换为一个 int,它是一个 value type .值类型不能为 null。

JToken.SelectToken方法返回一个 JToken 对象,它是一个引用类型,因此可以为 null。删除强制转换,它应该可以工作。

if (token.SelectToken("scriptVersion") == null)

关于C# Newtonsoft - 值不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753967/

相关文章:

C# .Net MysqlConnector ConnectionString 密码问题/问题

c# - 如何让我的游戏在 Unity 3D 中使用 C# 响应箭头输入?

c# - 如何以可移植的方式在 C# 中播放压缩的声音文件?

json - fatal error : Index out of range (while trying to load an image to a table view)

javascript - 在angularjs中将id从一个页面传递到另一个页面

c# - 如何在.NET服务器端检索Http请求参数

c# - 使用 FileSavePicker 写入文件

mysql - 使用 JSON 而不是规范化数据,这种方法是否正确?

json - Azure 数据工厂 - 从 Data Lake Gen 2 JSON 文件中提取信息

javascript - 如果使用 AND 查询失败但使用 OR 则有效