Передать JSON в COM - объект

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Передать JSON в COM - объект

Сообщение harry »

Коллеги, добрый день!
Столкнулся с ошибкой COM-объекта при попытке передать в качестве параметра метода JSON объект. Похоже, что не нравятся фигурные скобки.
Вот, пример кода:

Код: Выделить всё

Result = AdrWin$self.OleCtrl{'CallMethodWithoutAuth(e7c5e035-b261-4628-8d16-371dbd458c97,
											53660291-a1bc-4aad-ab66-c0dd1e47d471,
											ExtSdk2.AuthByPassword,
											{{"Login": "***", "Password": "***"},
											fix-online.sbis.ru)'}
Его выполнение вызывает ошибку
Ошибка COM.JPG
Без фигурных скобок в 4-ом параметре запрос проходит , но в этом случае COM-объект возвращает ошибку нормальным образом.

Никто не сталкивался с подобным ? Как решается ?
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Передать JSON в COM - объект

Сообщение harry »

Странно, но такой запрос с JSON прошел. Возможно, дело в чем то еще

Код: Выделить всё

AdrWin$self.OleCtrl{'CallMethodWithoutAuth(4ed82c6a-f98f-4acc-83c7-a62af1fc0f35,
						cef5db48-ee1d-4c08-ad28-7790a1ae3a07,
						ExtSdk2.AuthByCert,
						{"Imprint": "***"},
						fix-online.sbis.ru)'}
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Передать JSON в COM - объект

Сообщение Дед Пахом »

А разве параметры метода не надо брать в кавычки: ("4ed82c6a-f98f-4acc-83c7-a62af1fc0f35", "ExtSdk2.AuthByCert")?
С уважением, ДП
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Передать JSON в COM - объект

Сообщение harry »

Вроде, и без кавычек проходит, а в том запросе, что с ошибкой и с кавычками не проходит.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Передать JSON в COM - объект

Сообщение Дед Пахом »

А точно имена верные "Login" и "Password"?
С уважением, ДП
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Передать JSON в COM - объект

Сообщение harry »

Да. В СБИС логи отправлял. Как всегда, говорят, что проблема в языке. На Питоне у них все работает )
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Передать JSON в COM - объект

Сообщение Губин Игорь »

harry писал(а): 23 Август 2022, 17:12{{"Logi
А не в скобках ли дело?
Это я только кажусь дураком! На самом деле я полный идиот!
harry
Бывалый
Сообщения: 69
Зарегистрирован: 24 Февраль 2015, 14:16
Поблагодарили: 3 раза

Передать JSON в COM - объект

Сообщение harry »

Нет, не в скобках дело. Это я экспериментировал, передавая параметры через переменные и просто текстом весь вызов метода, а левая ( в Кларионе в текcт вводится как {{.
Подозреваю, что Кларион путается в разборе параметров метода. Как только в JSON объекте появляется второй параметр, отделенный запятой, то получаю ошибку OLE.
С таким параметром проходит:

Код: Выделить всё

{"Imprint": "***"}
,а с таким ошибка

Код: Выделить всё

{"Login": "***", "Password": "***"}
такой вариант тоже не помогает

Код: Выделить всё

"{"Login": "***", "Password": "***"}"
Ответить