Получение данных с JSON
Здравствуйте уважаемые однофорумчане, подскажите пожалуйста. Хочу обработать запрос о пользователе с телеграмм. Получаю ответ в JSON. Так как ранее не работал с данным форматом, то хотел бы узнать, как его правильно разобрать и записать в реквизиты справочника?
Допустим:
Пользователи = Справочники.ПользователиТелеграмм.НайтиПоРеквизиту("ID",ID);
Пользователи.Получить();
Пользователи.Имя = Имя;
Пользователи.Ник = Ник;
Пользователи.Записать();
Ниже с JSON получить данные в такой структуре.
ID = "123456789"
Имя: "Иван"
Ник: "Иванов"
Сама строка у меня находится в реквизите: Ответ.СтрокаJSON
{
"ok": true,
"result": {
"user": {
"id": 123456789,
"is_bot": false,
"first_name": "Иван",
"username": "Иванов",
"language_code": "ru"
},
"status": "member"
}
}
Допустим:
Пользователи = Справочники.ПользователиТелеграмм.НайтиПоРеквизиту("ID",ID);
Пользователи.Получить();
Пользователи.Имя = Имя;
Пользователи.Ник = Ник;
Пользователи.Записать();
Ниже с JSON получить данные в такой структуре.
ID = "123456789"
Имя: "Иван"
Ник: "Иванов"
Сама строка у меня находится в реквизите: Ответ.СтрокаJSON
{
"ok": true,
"result": {
"user": {
"id": 123456789,
"is_bot": false,
"first_name": "Иван",
"username": "Иванов",
"language_code": "ru"
},
"status": "member"
}
}
По теме из базы знаний
- Загрузка всех онлайн-чеков с сервиса проверки чеков ФНС (налоговой) – обработка для получения данных о покупках по чекам онлайн-касс с загрузкой в Авансовый отчет
- Получение данных отчета в http-сервисе (JSON) через расширение
- Получение данных из системы Wialon
- Получение данных таблиц PostgreSQL через внешний источник данных
- Внешняя компонента для работы с MYSQL в формате JSON
Найденные решения
(4)
Примерный код из Вашего примера (Но не проверял):
Ну и там проверки всякие нужные на заполненность и т.д.
Также, обратите внимание, что "Ник" по Вашему JSON не приехал
Примерный код из Вашего примера (Но не проверял):
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.СтрокаJSON);
СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
ID = СтруктураДанных.result.user.id;
Имя = СтруктураДанных.result.user.first_name;
Ник = "";
Пользователи = Справочники.ПользователиТелеграмм.НайтиПоРеквизиту("ID",ID);
Пользователи.Получить();
Пользователи.Имя = Имя;
Пользователи.Ник = Ник;
Пользователи.Записать();
ПоказатьНу и там проверки всякие нужные на заполненность и т.д.
Также, обратите внимание, что "Ник" по Вашему JSON не приехал
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(4)
Примерный код из Вашего примера (Но не проверял):
Ну и там проверки всякие нужные на заполненность и т.д.
Также, обратите внимание, что "Ник" по Вашему JSON не приехал
Примерный код из Вашего примера (Но не проверял):
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.СтрокаJSON);
СтруктураДанных = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
ID = СтруктураДанных.result.user.id;
Имя = СтруктураДанных.result.user.first_name;
Ник = "";
Пользователи = Справочники.ПользователиТелеграмм.НайтиПоРеквизиту("ID",ID);
Пользователи.Получить();
Пользователи.Имя = Имя;
Пользователи.Ник = Ник;
Пользователи.Записать();
ПоказатьНу и там проверки всякие нужные на заполненность и т.д.
Также, обратите внимание, что "Ник" по Вашему JSON не приехал
(7) Подскажите пожалуйста еще по одному вопросу.
Как вернуть первое значение file_id?
{
"ok": true,
"result": {
"total_count": 14,
"photos": [[{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABKwFQfa_ML0d0qQBAAEC",
"file_size": 4367,
"width": 160,
"height": 160
},
{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABBYsR-VFYPb806QBAAEC",
"file_size": 14094,
"width": 320,
"height": 320
},
{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABOlO5fHuDpog1KQBAAEC",
"file_size": 47984,
"width": 640,
"height": 640
}]]
}
}
Как вернуть первое значение file_id?
{
"ok": true,
"result": {
"total_count": 14,
"photos": [[{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABKwFQfa_ML0d0qQBAAEC",
"file_size": 4367,
"width": 160,
"height": 160
},
{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABBYsR-VFYPb806QBAAEC",
"file_size": 14094,
"width": 320,
"height": 320
},
{
"file_id": "AgADAgAD6qcxGwyaYxMulue7xCVvITMmrQ4ABOlO5fHuDpog1KQBAAEC",
"file_size": 47984,
"width": 640,
"height": 640
}]]
}
}
(11)
Попробуйте:
file_id = СтруктураДанных.result.photos[0].file_id;
Такое решение не подходит для прода, только для посмотреть.
Смущает меня также две квадратных скобки подряд. ..."photos": [[{..., и зарытие тоже подряд ..}]].. вроде как массив в массиве.
В понятных типах 1с:
У вас в структуре "result" структура из двух значений, где "photos" является массивом структур.
В данном случае у вас массив структур описаний файлов. Каждый элемент массива - это структура содержащая описание одного файла.
Массивы нужно обрабатывать в цикле. Потому что массив вполне может приехать пустым. Если сделаете без цикла перебора массива,
а массив пуст, то строка "СтруктураДанных.result.photos[0]" будет отваливаться по ошибке.
Попробуйте:
file_id = СтруктураДанных.result.photos[0].file_id;
Такое решение не подходит для прода, только для посмотреть.
Смущает меня также две квадратных скобки подряд. ..."photos": [[{..., и зарытие тоже подряд ..}]].. вроде как массив в массиве.
В понятных типах 1с:
У вас в структуре "result" структура из двух значений, где "photos" является массивом структур.
В данном случае у вас массив структур описаний файлов. Каждый элемент массива - это структура содержащая описание одного файла.
Массивы нужно обрабатывать в цикле. Потому что массив вполне может приехать пустым. Если сделаете без цикла перебора массива,
а массив пуст, то строка "СтруктураДанных.result.photos[0]" будет отваливаться по ошибке.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)