使用 dynamicJsonObject.getDynamicMemberNames() 时如何修复 RuntimeBinderException
How to fix RuntimeBinderException when using dynamicJsonObject.getDynamicMemberNames()
我在写这个问题的时候找到了解决办法,但我还是把它贴出来,这样以后如果有人遇到这个问题,他们可以找到这个
这个问题与 this question 有关,因为这是我最近尝试解决问题的方法。
简而言之:
在我的 .Net MVC 项目中,我收到一个 Json,其中包含一些不可预测的数据(数组 :)。我可以使用
解码此 Json
dynamic dynamicObj =System.Web.Helpers.Json.Decode(await someAPIcall(someParameters));
我可以通过在 VisualStudio 中将鼠标悬停在数据上来探索数据(尽管它是一个比发送的 json 复杂得多的结构),而且 ObjectDumper nuget 能够显示所有属性。
现在,我如何在我的代码中访问这些数据?
我尝试了以下方法:
通过链接 属性 名称来访问任何对象的属性,例如:
dynamicObj._values[1].Key
其中,按照鼠标悬停在数据资源管理器(不知道它的名称)上的路径,应该会给我一个简单的字符串。但是我得到这个错误:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform
runtime binding on a null reference
所以我试图查看此对象中的名称是否有所不同,所以我尝试了:
foreach (string name in dynamicObj.getDynamicMemberNames())
{
Debug.WriteLine(name);
}
这是 DynamicJsonObject 的一种方法,但这会引发此错误:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform
runtime binding on a null reference
当显然 dynamicObj 不为空时。
我错过了什么?
问题是这一行:
dynamic dynamicObj = System.Web.Helpers.Json.Decode(await
someAPIcall(someParameters)));
应该是这样的:
DynamicJsonObject dynamicObj = System.Web.Helpers.Json.Decode(await
someAPIcall(someParameters));
我在写这个问题的时候找到了解决办法,但我还是把它贴出来,这样以后如果有人遇到这个问题,他们可以找到这个
这个问题与 this question 有关,因为这是我最近尝试解决问题的方法。
简而言之:
在我的 .Net MVC 项目中,我收到一个 Json,其中包含一些不可预测的数据(数组 :)。我可以使用
解码此 Jsondynamic dynamicObj =System.Web.Helpers.Json.Decode(await someAPIcall(someParameters));
我可以通过在 VisualStudio 中将鼠标悬停在数据上来探索数据(尽管它是一个比发送的 json 复杂得多的结构),而且 ObjectDumper nuget 能够显示所有属性。
现在,我如何在我的代码中访问这些数据?
我尝试了以下方法:
通过链接 属性 名称来访问任何对象的属性,例如:
dynamicObj._values[1].Key
其中,按照鼠标悬停在数据资源管理器(不知道它的名称)上的路径,应该会给我一个简单的字符串。但是我得到这个错误:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform
runtime binding on a null reference
所以我试图查看此对象中的名称是否有所不同,所以我尝试了:
foreach (string name in dynamicObj.getDynamicMemberNames())
{
Debug.WriteLine(name);
}
这是 DynamicJsonObject 的一种方法,但这会引发此错误:
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform
runtime binding on a null reference
当显然 dynamicObj 不为空时。
我错过了什么?
问题是这一行:
dynamic dynamicObj = System.Web.Helpers.Json.Decode(await
someAPIcall(someParameters)));
应该是这样的:
DynamicJsonObject dynamicObj = System.Web.Helpers.Json.Decode(await
someAPIcall(someParameters));