Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Работа с API

Работа с API
Я
   Kaban145
 
23.08.21 - 20:39
Здравствуйте, написал запрос из 1С на сайт по api, сайт возвращает ответ в формате JSON.
Вопрос: как из этого файла получить конкретную строку и заполнить значением этой строки поле на форме?
   ДенисЧ
 
1 - 23.08.21 - 20:42
Есть же в 1с встроенные функции чтения JSON.
Ты их пробовал?
   Kaban145
 
2 - 23.08.21 - 20:44
Эмм, пробовал, я просто в этой теме второй день, поэтому если бы кто кинул пример, хоть небольшой, я думаю разобрался бы
   brainguard
 
3 - 23.08.21 - 21:06
соединение=новый HTTPСоединение("api.nasa.gov",443,,,,,новый ЗащищенноеСоединениеOpenSSL());
    запрос=новый HTTPЗапрос("/planetary/apod?api_key=vHORPgFd5cBM1iXzRs6OAb0bFoYkNbcKjPnBo13x&count=50");
    результатзапроса=соединение.Получить(запрос);
    стр=результатзапроса.ПолучитьТелоКакСтроку();
    
    чт=новый ЧтениеJSON;
    чт.УстановитьСтроку(стр);
    рез=ПрочитатьJSON(чт);
    для каждого эл из рез цикл
и т.д.
   Kaban145
 
4 - 23.08.21 - 21:23
Выдаёт в строке КлючИЗначение
   VladZ
 
5 - 23.08.21 - 21:30
(4) Обращайся по ключу
   Kaban145
 
6 - 23.08.21 - 21:40
Можно, пожалуйста, поподробнее я просто полный ноль в этом, сделаю эту хрень и больше никогда в это не полезу.)
Простите меня заранее.)
   МимохожийОднако
 
7 - 23.08.21 - 21:41
Бог простит. Не зарекайся.
   Базис
 
8 - 23.08.21 - 21:52
Зарекался Кабан в 1С не лезть :)

Внутри цикла:
Если СокрЛП(Нрег(ключ) = "что ты там хотел" Тогда
   Возврат "Вот оно! " + СокрЛП(Значение);
КонецЕсли;

После цикла 
Возврат("Я так и и знал. Ничего не работает. Надо идти на форум.");
   Elf_80_lvl
 
9 - 23.08.21 - 22:09
(6) В таких случаях нанимают программиста и платят ему за 2 часа работы очень небольшие деньги.
   DGorgoN
 
10 - 24.08.21 - 08:10
(0) JSON обычный текстовый файл. Открой его блокнотом.
   Kaban145
 
11 - 25.08.21 - 01:19
Написал вот такую конструкцию:
Чтение=Новый ЧтениеJSON;
Чтение.УстановитьСтроку(ОтветСервера);
МассивДжи=ПрочитатьJSON(Чтение);
Для каждого Элемент из МассивДжи Цикл
    Ключ=Элемент.Ключ;
    Значение=Элемент.Значение;
    Сообщить(Ключ+Значение);
    КонецЦикла;
Выдаёт всего два ключа и вместо значений выдаёт Структура
   Kaban145
 
12 - 25.08.21 - 01:51
Немного разобрался, выдаёт ключи data и meta, они не содержат значений, а как можно перешагнуть их и прочитать ключи, которые содержат значения?
   DrZombi
 
13 - 25.08.21 - 06:10
(12) Вы какое образование имеете?
Какой навык в программировании?
Сколько языков знаете?

...
Ответы на вопросы облегчат нам ответы вам.
Народ уже вам ответил на ваш вопрос, но вы нечего не поняли. :)
   Chameleon1980
 
14 - 25.08.21 - 07:10
обычно из джейсона примитивного
получается либо структура либо соответствие
в них уже могут быть массивы
почитайте синтакс-помощник по
структура
массив
соответствие

ну или примеры посмотрите
   Salimbek
 
15 - 25.08.21 - 08:44
(12) Вот так же и перебираешь:

Для каждого Элемент2 из ...

Если внутри будет еще структура или массив, то 

Для каждого Элемент3 из ...

P.S. Если знаешь точно, что за имя у нужного тебе узла (например "key"), то можно проще

Данные = МассивДжи["data"]["key"]
   Kaban145
 
16 - 25.08.21 - 10:55
Спасибо огромное Salimbek , всё получилось.)

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.