2015-03-18 3 views
1

Я получаю одну строку json, которую я преобразовываю в динамический объект, используя библиотеку DynamicJson. Хотя я возвращаю массив, я не могу получить свойство count/length этого массива.Получение длины количество элементов в массиве DynamicJson

Для получения дополнительной информации см. Изображение ниже.

Я пробовал, C ount, Length & length Недвижимость. Все эти свойства недоступны. Как получить счет для массива DynamicJson?

enter image description here

ответ

0

Хотя я не в состоянии получить длину \ кол-массива, я теперь с помощью цикла Еогеасп, чтобы получить данные:

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

      } 
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<> обработки.

Смежные вопросы