JsonConvert.DeserializeObject <dynamic>(响应)中的“无法对空引用执行运行时绑定”

时间:2019-10-14 14:13:44

标签: c# serialization json.net

在我的代码内,我收到错误

  

“无法对空引用执行运行时绑定”

请注意,响应来自服务器API和附加的数据示例。

我有意分割了代码,因为我有一个专用的方法可以输出动态对象,但是出于测试目的,我避免了。

var response = NetworkHelper.GET( url );
var result = JsonConvert.DeserializeObject<dynamic>( response );

在下面的代码行中引发错误

if (result.UniqueIdentifier != null && result.UniqueIdentifier != 0)

样本数据

{
    "UniqueIdentifier":8529685323871177582,
    "Id":{},
    "IsLAN":false,
    "Language":"English"
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的问题是JSON已转义,并且您的结果变量基本上是字符串类型。

您需要对其进行适当的解锁,然后反序列化。

var token = JToken.Parse(response );
var result = JsonConvert.DeserializeObject<dynamic>(token.ToString());

if(result.UniqueIdentifier=!0)
{
  // do something
}