- Регистрация
- 17.09.2022
- Сообщения
- 15
- Благодарностей
- 2
- Баллы
- 3
Всем привет, в процессе работы над одним проектом столкнулся с затупом который пока не получилось решить
Работаю с вк апи, сделал проект под получение токкенов для апи. Тут всё просто проект берёт данные, авторизируеться через браузер, далее получает апи ключ.
Затем я сразу делаю get запрос на метод account.getProfileInfo. Данные полученные этим методом записываю в бд (id, имя, фамилия, пол и т.д.)
в процессе работы с вкапи стало понятно что некоторых полей у некоторых пользователей может и не быть, например поле девичья фамилия у мужиков
по такому случаю я написал при помощи chatGPT c# кубик, который проверяет значения полученные по апи, и если в каком то из них пустота, то заменяет её на слово empty. Таким образом я могу не переживать что в бд будет ошибка из за пустого значения.
сам сниппет выглядит вот так
и так для всех нужных мне значений. Не знаю как написать элегантнее, поэтому для каждой переменной свой снипет друг за другом в одном экшене c#
Всё работало до вчерашнего момента. оказываеться что у некоторых пользователей не заполнена информация например страна и из за этого её нет в АПИ, и когда происходит обработка этого места постер ругаеться что в JSON нет такого обьекта(точно не запомнил текст) и проект вылетает в ошибку.
Как можно исправить этот c# код чтобы если в JSON нет такой переменной чтобы писал в обычную переменную слово empty ?
Работаю с вк апи, сделал проект под получение токкенов для апи. Тут всё просто проект берёт данные, авторизируеться через браузер, далее получает апи ключ.
Затем я сразу делаю get запрос на метод account.getProfileInfo. Данные полученные этим методом записываю в бд (id, имя, фамилия, пол и т.д.)
в процессе работы с вкапи стало понятно что некоторых полей у некоторых пользователей может и не быть, например поле девичья фамилия у мужиков
по такому случаю я написал при помощи chatGPT c# кубик, который проверяет значения полученные по апи, и если в каком то из них пустота, то заменяет её на слово empty. Таким образом я могу не переживать что в бд будет ошибка из за пустого значения.
сам сниппет выглядит вот так
C#:
project.Variables["vk_id"].Value = "";
// Получаем значение vk_id и преобразуем его в строку
var vk_id = project.Json.response.id.ToString();
// Проверяем, является ли значение vk_id пустотой
if (string.IsNullOrEmpty(vk_id))
{
// Если vk_id пустота, заменяем его на "empty"
vk_id = "empty";
}
// Записываем значение vk_id в переменную
project.Variables["vk_id"].Value = vk_id;
//================================================//
// Очищаем переменную
project.Variables["vk_firstName"].Value = "";
// Получаем значение vk_firstName и преобразуем его в строку
var vk_firstName = project.Json.response.first_name.ToString();
// Проверяем, является ли значение vk_firstName пустотой
if (string.IsNullOrEmpty(vk_firstName))
{
// Если vk_firstName пустота, заменяем его на "empty"
vk_firstName = "empty";
}
// Записываем значение vk_firstName в переменную
project.Variables["vk_firstName"].Value = vk_firstName;
//================================================//
// Очищаем переменную
project.Variables["vk_lastName"].Value = "";
// Получаем значение vk_lastName и преобразуем его в строку
var vk_lastName = project.Json.response.last_name.ToString();
// Проверяем, является ли значение vk_lastName пустотой
if (string.IsNullOrEmpty(vk_lastName))
{
// Если vk_lastName пустота, заменяем его на "empty"
vk_lastName = "empty";
}
// Записываем значение vk_lastName в переменную
project.Variables["vk_lastName"].Value = vk_lastName;
//================================================//
// Очищаем переменную
project.Variables["vk_sex"].Value = "";
// Получаем значение vk_sex и преобразуем его в строку
var vk_sex = project.Json.response.sex.ToString();
// Проверяем, является ли значение vk_sex пустотой
if (string.IsNullOrEmpty(vk_sex))
{
// Если vk_sex пустота, заменяем его на "empty"
vk_sex = "empty";
}
// Записываем значение vk_sex в переменную
project.Variables["vk_sex"].Value = vk_sex;
//================================================//
// Очищаем переменную
project.Variables["vk_countryId"].Value = "";
// Получаем значение vk_countryId и преобразуем его в строку
var vk_countryId = project.Json.response.country.id.ToString();
// Проверяем, является ли значение vk_countryId пустотой
if (string.IsNullOrEmpty(vk_countryId))
{
// Если vk_countryId пустота, заменяем его на "empty"
vk_countryId = "empty";
}
// Записываем значение vk_countryId в переменную
project.Variables["vk_countryId"].Value = vk_countryId;
//================================================//
// Очищаем переменную
project.Variables["vk_countryTitle"].Value = "";
// Получаем значение vk_countryTitle и преобразуем его в строку
var vk_countryTitle = project.Json.response.country.title.ToString();
// Проверяем, является ли значение vk_countryTitle пустотой
if (string.IsNullOrEmpty(vk_countryTitle))
{
// Если vk_countryTitle пустота, заменяем его на "empty"
vk_countryTitle = "empty";
}
// Записываем значение vk_countryTitle в переменную
project.Variables["vk_countryTitle"].Value = vk_countryTitle;
//================================================//
// Очищаем переменную
project.Variables["vk_cityId"].Value = "";
// Получаем значение vk_cityId и преобразуем его в строку
var vk_cityId = project.Json.response.city.id.ToString();
// Проверяем, является ли значение vk_cityId пустотой
if (string.IsNullOrEmpty(vk_cityId))
{
// Если vk_cityId пустота, заменяем его на "empty"
vk_cityId = "empty";
}
// Записываем значение vk_cityId в переменную
project.Variables["vk_cityId"].Value = vk_cityId;
//================================================//
// Очищаем переменную
project.Variables["vk_cityTitle"].Value = "";
// Получаем значение vk_cityTitle и преобразуем его в строку
var vk_cityTitle = project.Json.response.city.title.ToString();
// Проверяем, является ли значение vk_cityTitle пустотой
if (string.IsNullOrEmpty(vk_cityTitle))
{
// Если vk_cityTitle пустота, заменяем его на "empty"
vk_cityTitle = "empty";
}
// Записываем значение vk_cityTitle в переменную
project.Variables["vk_cityTitle"].Value = vk_cityTitle;
//================================================//
// Очищаем переменную
project.Variables["vk_verificationStatus"].Value = "";
// Получаем значение vk_verificationStatus и преобразуем его в строку
var vk_verificationStatus = project.Json.response.verification_status.ToString();
// Проверяем, является ли значение vk_verificationStatus пустотой
if (string.IsNullOrEmpty(vk_verificationStatus))
{
// Если vk_verificationStatus пустота, заменяем его на "empty"
vk_verificationStatus = "empty";
}
// Записываем значение vk_verificationStatus в переменную
project.Variables["vk_verificationStatus"].Value = vk_verificationStatus;
//================================================//
// Очищаем переменную
project.Variables["vk_relation"].Value = "";
// Получаем значение vk_relation и преобразуем его в строку
var vk_relation = project.Json.response.relation.ToString();
// Проверяем, является ли значение vk_relation пустотой
if (string.IsNullOrEmpty(vk_relation))
{
// Если vk_relation пустота, заменяем его на "empty"
vk_relation = "empty";
}
// Записываем значение vk_relation в переменную
project.Variables["vk_relation"].Value = vk_relation;
//================================================//
и так для всех нужных мне значений. Не знаю как написать элегантнее, поэтому для каждой переменной свой снипет друг за другом в одном экшене c#
Всё работало до вчерашнего момента. оказываеться что у некоторых пользователей не заполнена информация например страна и из за этого её нет в АПИ, и когда происходит обработка этого места постер ругаеться что в JSON нет такого обьекта(точно не запомнил текст) и проект вылетает в ошибку.
Как можно исправить этот c# код чтобы если в JSON нет такой переменной чтобы писал в обычную переменную слово empty ?