【问题标题】:Getting length\count of items in DynamicJson array获取 DynamicJson 数组中项目的长度\计数
【发布时间】:2015-03-18 09:15:44
【问题描述】:

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

查看下图了解更多信息。

我试过了,Count, Length & length属性。所有这些属性都不可用。如何获取 DynamicJson 数组的计数?

【问题讨论】:

    标签: c# .net arrays


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      该库似乎支持将至少转换为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&lt;object&gt;

      更复杂的例子:

      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&lt;&gt; 处理似乎至少存在一个错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-30
        • 2011-12-11
        • 1970-01-01
        • 2015-08-05
        • 2015-08-14
        • 1970-01-01
        • 2020-09-12
        相关资源
        最近更新 更多