System.Web.Script.Serialization и Количество элементов

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 553
Баллы
113
В общем, мне стало лень подключать для маленького проекта целую либу (не родную) для десериализации JSON. Версия ZP старая - 5.9.9.1, поэтому встроенных методов по работе с JSON у меня нет.

Решил поработать через System.Web.Script.Serialization.
Все круто, только количество элементов не могу получить.
JSON:
{
   "settings": {
     "timestamp": "2017-02-20",
     "v": "51"
   },
   "list": [
      {"id": "t-167827"},
      {"id": "t-167833"},
      {"id": "t-167868"}
   ]
}
Есть код:
C#:
string a = project.Variables["JSON"].Value;
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
dynamic id = serializer.DeserializeObject(a);
Мне нужно получить количество элементов "list". Так не работает:
C#:
return id["list"].Count;
Документацию на msdn листал, но никак не могу найти ответ на свой вопрос. То ли не там ищу, то ли сонный. Выручайте :-)
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 553
Баллы
113
Вопрос решен, может кому пригодится (по контексту примера):
C#:
Enumerable.Count(id["list"]);
 

ZHAG

Client
Регистрация
01.05.2014
Сообщения
228
Благодарностей
220
Баллы
43
Для примера который привел ты справедливо будет такое выражение
C#:
return id["list"].Length;
Ты должен понимать что после серилизации в list у тебя лежит не список а массив, а как известно у массива нет свойства Count по симу у тебя и была ошибка.
Код приведенный мной справедлив для одномерных массивов, в случае если масив многомерен он посчитает каждый элемент.

C#:
string s = @"{
   ""settings"": {
     ""timestamp"": ""2017-02-20"",
     ""v"": ""51""
   },
   ""list"": [
      {""id"": ""t-167827""},{""id"": ""t-167827""},
      {""id"": ""t-167833""},{""id"": ""t-167827""},
      {""id"": ""t-167868""},{""id"": ""t-167827""}
   ]
}";
Код:
Для данной строки мой код вернет значение 6
 
  • Спасибо
Реакции: lzlmrf

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)