【发布时间】:2014-05-20 18:34:49
【问题描述】:
我正在从返回复杂 JSON 字符串的 Web API 收集数据。这包含许多不同类型的值、一些数组和一些相当深的嵌套。
目前我正在将字符串转换为动态对象,如下所示:
dynamic dynamicObject = JsonConvert.DeserializeObject(jsonString);
然后我会根据需要从该对象中检索值并对其进行类型转换,但是当我尝试检索数组时,此方法会给出空引用异常:
int myValue = (int)dynamicObject.foo.value; // Works!
int[] myArrayOfInts = (int[])dynamicObject.bar.values; // Null
我不知道如何继续,因为我对 C# 和 ASP.net 还很陌生。到目前为止,我遇到的大多数解决方案都需要创建反映整个 JSON 结构的小型、严格类型的类。在我的情况下,最好简单地使用动态对象,部分是为了简单,部分是因为实际上只使用了某些值。
【问题讨论】:
-
就在您说“不起作用”的部分附近,您可能应该解释对您不起作用的实际行为。是否抛出异常?构建错误?这就是一个体面的--可回答-- 问题所缺少的全部内容。
-
数组未初始化;它给出了一个空引用异常。抱歉,不清楚,我将其添加到问题中。