Как пробежаться циклом по всему Json и собрать ключ => значение ?

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 722
Благодарностей
1 377
Баллы
113
Всем привет.

после парсинга json имеем такое:

xxx.key1
xxx.key2
xxx.key3
....
xxx.key100

У каждого естестсвенно есть свое значение

Названия этих key1 ... keyN я знаю и могу получить доступ к каждому из них по отдельности.

Но получать их по отдельности я не хочу, а хочу пробежаться как-нибудь циклом по xxx и собрать все значения в виде строк keyN = valueN

Вопрос в том как такой цикл организовать ?

P.S паршу стандартным зенкинским методом - project.Json.FromString(jsonstr)
 
Последнее редактирование:

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 722
Благодарностей
1 377
Баллы
113
нашел такое решение когда-то предложенное @Adigen
C#:
var obj = project.Json;
Dictionary<string,string> jsonDict = obj.GetType().GetMethod("GetAllMembersList").Invoke(obj,null);
foreach(var el in jsonDict){
    project.SendInfoToLog(el.Key+";"+el.Value);
}
в ПМ работает, проверил
Но в ветке где это решение было предложены, пишут что в ПМ работает, а в ZP нет. Причем даже пишут что в относительно свежих ZP не работает (5.29.1.0)
В общем возможности проверять на всех версиях ZP у меня нет и хотелось бы найи гарантированно рабочее решение
 
  • Спасибо
Реакции: lx2003

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Таким способом норм работает
C#:
string json = project.Variables["json"].Value;
project.Json.FromString(json);
foreach(var el in project.Json.xxx)
{
  //el.key1
}
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 722
Благодарностей
1 377
Баллы
113
@SergSh
так в этом куске вы как раз предлагаете подставлять конкретное значение ключа ... я в стартпосте написал что по конкретному ключу получить значение - no problem

Давайте предположим что мы не знаем название ключей и нужно собрать в виде строки все эти ключ = значение
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Так вроде можно
C#:
string json = project.Variables["json"].Value;
var jss = new JavaScriptSerializer();
var table = jss.Deserialize<dynamic>(json);
foreach(var el in table)
{
    project.SendInfoToLog(el.Key);
    project.SendInfoToLog(el.Value.ToString());
}
 

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