【发布时间】:2015-07-05 10:22:04
【问题描述】:
当我传入特定的屏幕名称时,以下内容会返回给我。
我一直在关注这个Deserialize JSON into C# dynamic
我正在尝试通过执行以下操作来引用文本字段:
var serializer = new JavaScriptSerializer();
dynamic data = serializer.Deserialize(tweets, typeof(object));
for (int i = 0; i < data.Count; i++)
{
var t = data[i][3].text;
}
显然这是错误的,因为我得到了
Additional information: Operator '<' cannot be applied to operands of type 'int' and 'object[]'
谁能帮我检索推文的文本。
【问题讨论】:
-
你需要像这样改变你的 for 循环
for (int i = 0; i < data.Count; i++) -
@RahulNikate 完全忘记了 .Count 反正我现在已经把它放进去了,但我现在得到了附加信息:'System.Array' 不包含'Count'的定义
-
@RahulNikate 我在我的问题中添加了额外的代码
-
好的,所以我将 count 更改为 length 并且它起作用了,但是当它命中 var t = data[i][3].text 时,我收到以下错误附加信息:'System 的最佳重载方法匹配.Collections.Generic.Dictionary
.this[string]' 有一些无效参数 -
你能告诉我们你试图解析的 JSON 吗? JavaScriptSerializer 实际返回的是 1)
IList<object>用于数组;IDictionary<string, object>用于对象;以及值的适当原始类型。听起来您的数组元素是字典而不是嵌套数组,因此它们的属性需要按名称而不是索引来寻址。