Проверить существование переменной

Zonteak

Client
Регистрация
25.02.2021
Сообщения
14
Благодарностей
1
Баллы
3
Как проверить существование переменной в JSON {-Json.response.name-} ?
 
  • Спасибо
Реакции: udder

Judje2018

Client
Регистрация
15.02.2018
Сообщения
16
Благодарностей
4
Баллы
3
Если использовать условие if
if (result.name) {-Json.response.name- } и условие прописать есть или нет
на просторах много вариантов
вот вариант
 
Последнее редактирование:
  • Спасибо
Реакции: Zonteak

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
аналогичный вопрос. Как вы вышли из ситуации @Zonteak ? совет от @Judje2018 не понял.
возможно, у кого то есть по-лучше решение через стандартные зенно методы, но пока так:

C#:
// ищем переменую json по точному названию, к примеру Json-переменная "response.name"
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
    if (s.Key != "response.name") throw new Exception("переменная отсутcтвует!");

C#:
// ищем Json-переменную по вхождению, пример "response.name.alert" или "response.name.[1].[2]" и тд
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
    if (!s.Key.Contains("response.name")) throw new Exception("переменная отсутcтвует!");
 
  • Спасибо
Реакции: udder

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
возможно, у кого то есть по-лучше решение через стандартные зенно методы, но пока так:

C#:
// ищем переменую json по точному названию, к примеру Json-переменная "response.name"
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
    if (s.Key != "response.name") throw new Exception("переменная отсутcтвует!");

C#:
// ищем Json-переменную по вхождению, пример "response.name.alert" или "response.name.[1].[2]" и тд
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
    if (!s.Key.Contains("response.name")) throw new Exception("переменная отсутcтвует!");
@Ilshakin
не работает., хотя переменная Json.objects[0].images[11].url есть
// ищем переменую json по точному названию, к примеру Json-переменная "response.name"
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
if (s.Key != "objects[0].images[11].url") throw new Exception("переменная отсутcтвует!");
 

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
@Ilshakin
не работает., хотя переменная Json.objects[0].images[11].url есть
// ищем переменую json по точному названию, к примеру Json-переменная "response.name"
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
if (s.Key != "objects[0].images[11].url") throw new Exception("переменная отсутcтвует!");
C#:
foreach (var s in project.Json)
    if (!s.ToString().Contains("Json.objects.[0].images.[11].url")) throw new Exception("не содержит");
 
  • Спасибо
Реакции: udder

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
639
Благодарностей
581
Баллы
93
У меня так же не сработало. :-)
переменную значит неправильно вписываешь

C#:
foreach(var s in project.Json.GetType().GetMethod("GetAllMembersList").Invoke(project.Json,null))
    if (s.Key != "Json.objects[0].images[11].url") throw new Exception("переменная отсутcтвует!");
 
Последнее редактирование:
  • Спасибо
Реакции: udder

Greez

Client
Регистрация
05.02.2014
Сообщения
85
Благодарностей
30
Баллы
18
Что-то у меня никакой из предложенных выше вариантов не работает корректно, может из-за ZP 5, пока делаю как на скрине. По зелёной -- переменная есть, по красной -- переменной нет.

Screenshot_1.png
 

Philipp

Client
Регистрация
14.10.2019
Сообщения
100
Благодарностей
55
Баллы
28
Рабочий вариант искать по ключам, вот пример:


Ищем есть ли куки в массиве JSON, собираем из них строку:
Dictionary<string, string> members = new Dictionary<string, string>(project.Json.GetAllMembersList());
List<string> cookies = new List<string>();
    
foreach (var s in members)
{
    if (s.Key.ToString().Contains("steamCountry")) cookies.Add("steamCountry="+s.Value+";");
    if (s.Key.ToString().Contains("browserid")) cookies.Add("browserid="+s.Value+";");
    if (s.Key.ToString().Contains("timezoneOffset")) cookies.Add("timezoneOffset="+s.Value+";");
    if (s.Key.ToString().Contains("_GRECAPTCHA")) cookies.Add("_GRECAPTCHA="+s.Value+";");
}

project.Variables["cookie_string"].Value = String.Join(" ", cookies);
project.SendInfoToLog(project.Variables["cookie_string"].Value);
 
Последнее редактирование:
  • Спасибо
Реакции: Ilshakin

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