获取DynamicJson数组中项目的长度\计数

时间:2015-03-18 09:15:44

标签: c# .net arrays

我正在使用DynamicJson库获取一个json字符串,我将其转换为动态对象。虽然我得到了一个数组,但是我无法得到这个数组的count / length属性。

有关详细信息,请参见下图。

我尝试了C ount, Length & length属性。所有这些属性都不可用。如何计算DynamicJson数组?

enter image description here

2 个答案:

答案 0 :(得分:0)

虽然我无法获得数组的长度\计数,但我现在使用foreach循环来获取数据:

var dynJson = DynamicJson.Parse(result);
            var jarr = dynJson.results.docs;
            foreach (var item in jarr)
            {
                var v = item[attribute];

            }

答案 1 :(得分:0)

图书馆似乎支持将至少投射到T[]List<T>,因此您可以:

var json = DynamicJson.Parse(@"{""foo"": [1, 2, 3] }");
int[] arr = json.foo;
int length = arr.Length;

List<int> lst = json.foo;
int length2 = lst.Count;

请注意,您甚至可以投放到object[]List<object>

更复杂的例子:

var json = DynamicJson.Parse(@"{""foo"": [{ ""bar"": 5 }, 2, 3] }");
dynamic[] arr = json.foo;
int length = arr.Length;

List<dynamic> lst = json.foo;
int length2 = lst.Count;

int bar1 = (int)json.foo[0].bar;
int bar2 = (int)arr[0].bar;
//int bar3 = (int)lst[0].bar; // doesn't work!

请注意,List<>处理似乎至少存在错误。