Непредвиденный символ при чтении json 1с что делать
Непредвиденный символ при чтении JSON
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Добрый день! Пробовали настроить интеграцию с облачной телефонией Ростелеком. Т.к. инструкции по настройке с конфигурацией «Управление торговлей и взаимоотношениями с клиентами (CRM)» нигде нет, то, вероятно, при настройке совершили ошибку, т.к. теперь при начале настройки телефонии выходит ошибка «Непредвиденный символ при чтении JSON». Ошибка в закрытом модуле:
<ОбщийМодуль.сфпЛицензированиеСервер.Модуль(504)>: Ошибка при вызове метода контекста (ПрочитатьJSON)
Конфигурация: Управление торговлей и взаимоотношениями с клиентами:
1С:Управление торговлей (11.4.12.75) + 1С:CRM (3.0.19.33)
Версия продукта (3.0.19.42)
Рег. номер: 13181299
Сможете показать скриншот настроек телефонии?
Цитата |
---|
Людмила Шишкина написал: Добрый день! |
Сможете показать скриншот настроек телефонии?
Попробуйте очистить константы «Используемая АТС (Константы)» и «Используемая версия СофтФон (Константы)» (через «Все функции»).
Открылось окно настройки облачной телефонии, заново нажимаю Ростелеком. В результате ошибка (в файле прикрепил).
Т.е. я могу предположить, что программа загружает где-то сохраненные некорректные настройки по Ростелекому, и выходит такая ошибка. На самом деле как я полагаю сам модуль РАРУСу тоже необходимо доработать, чтобы можно было продолжить настройки, даже если они некорректные. Но это я так полагаю не быстро. А сейчас хотелось бы узнать, где именно сами настройки по телефонии хранятся, чтобы их можно было очистить?
1С и JSON: работа над ошибками
Пилотная версия функции преобразования данных 1С в JSON оказалась вполне удачной. Делюсь новой версией: http://pastebin.com/y2K5V3Xt
Напомню, что код состоит из одной функции и не зависит от сторонних модулей и компонент.
Комментарии из старого блога
Преимущество JSON перед XML не в меньшем объеме данных, а в удобстве сериализации и парсинга. Одной функцией структура сворачивается в JSON, другой – обратно. Генерация и парсинг XML занимают больше времени и сил.
11/21/12 Артемий Зайцев: Проверил с разными языками. В UTF всё работает. Еще у вас подстановок спецсимволов в строке. Если в тексте есть знаки / \ “, то JSON ломается.
11/21/12 Иван Гришаев: Да, спасибо, только что сам обнаружил, что с кавычками косяк, нужно их экранировать заменой, как у вас. Завтра выложу новую версию функции.
05/31/13 Кирилл: Спасибо автору!
05/31/13 Иван Гришаев: Вы комментируете старую версию функции. Вот новая. Там много чего исправлено. Эта крутится в продакшене уже больше года.
05/31/13 Зайцев Артемий Анатольевич: Иван. В новой тот же косяк с датой:
05/31/13 Иван Гришаев: Похоже, вы правы, спасибо. В моем проекте часы и минуты не нужны, не обратил внимания.
Нашли ошибку? Выделите мышкой и нажмите Ctrl/⌘+Enter
Writing on programming, education, books and negotiations.
Непредвиденный символ при чтении JSON
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
Добрый день! Пробовали настроить интеграцию с облачной телефонией Ростелеком. Т.к. инструкции по настройке с конфигурацией «Управление торговлей и взаимоотношениями с клиентами (CRM)» нигде нет, то, вероятно, при настройке совершили ошибку, т.к. теперь при начале настройки телефонии выходит ошибка «Непредвиденный символ при чтении JSON». Ошибка в закрытом модуле:
<ОбщийМодуль.сфпЛицензированиеСервер.Модуль(504)>: Ошибка при вызове метода контекста (ПрочитатьJSON)
Конфигурация: Управление торговлей и взаимоотношениями с клиентами:
1С:Управление торговлей (11.4.12.75) + 1С:CRM (3.0.19.33)
Версия продукта (3.0.19.42)
Рег. номер: 13181299
Сможете показать скриншот настроек телефонии?
Цитата |
---|
Людмила Шишкина написал: Добрый день! |
Сможете показать скриншот настроек телефонии?
Попробуйте очистить константы «Используемая АТС (Константы)» и «Используемая версия СофтФон (Константы)» (через «Все функции»).
Открылось окно настройки облачной телефонии, заново нажимаю Ростелеком. В результате ошибка (в файле прикрепил).
Т.е. я могу предположить, что программа загружает где-то сохраненные некорректные настройки по Ростелекому, и выходит такая ошибка. На самом деле как я полагаю сам модуль РАРУСу тоже необходимо доработать, чтобы можно было продолжить настройки, даже если они некорректные. Но это я так полагаю не быстро. А сейчас хотелось бы узнать, где именно сами настройки по телефонии хранятся, чтобы их можно было очистить?
не могу прочитать json 🙁
HTTP ответ нужно прочитать в структуру. Код состояния 200, все норм.
На ПрочитатьJSON(ЧтениеJSON) Ошибка при вызове метода контекста (ПрочитатьJSON). Что не так не пойму. перечитала синтакс помощник раз 10 уже, даже если пустую строку «<>» дать, то ошибка контекста. Вызывается в общем модуле с галками клиент, сервер, внешнее соединение.
//Разбираем ответ
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
Попытка
РезультатСоответствие = ПрочитатьJSON(ЧтениеJSON);
Исключение
Сообщить(«1»);
КонецПопытки;
В СтрJSON получается
<
Параметры:
(обязательный)
Тип: ЧтениеJSON.
Тип: Булево.
Если установлено Истина, чтение объекта JSON будет выполнено в Соответствие.
Если установлено Ложь, объекты будут считываться в объект типа Структура.
(17) что-то туплю.. а как записать HTTPОтвет в файл?
(21) все равно валится с Недопустимое состояние потока записи JSON. видимо в строке серьезные косяки для 1с
(28) какая-то странная фигня происходит..
в общем если поставить одну точку останова на Сообщить(«5 все ок») или Сообщить(«5») то до нее доходит без ошибок, читает в соответствие, и ссылки со слешами верно читает, только дата в виде строки в итоге «2020-05-14T09:34:23+03:00»
в структуру не читает, т.к. есть такое вот в строке «. «edit.originator»:true. » ну а в структуре нельзя точку в заголовок, ок, допустим, пусть соответствие.
но если поставить точку останова где-то до попытки и идти пошагово, то вываливается на ПрочитатьJSON в исключение.
Чтение файла JSON (ошибка)
получаю ответ на запрос.
Ответ приходит в виде Json
так вот при выполнении кода:
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПутьКФайлу);
Ответ=ПрочитатьJSON(ЧтениеJSON);
Выдет ошибку:
<ВнешняяОбработка.ЭкспериментыJSON.Форма.Форма.Форма(67)>: Ошибка при вызове метода контекста (ПрочитатьJSON)
Ответ=ПрочитатьJSON(ЧтениеJSON);
по причине:
Недопустимое имя свойства: ‘800’ для чтения JSON в объект Структура
Подскажите как быть?
Формат ваших данных не соответствует стандарту JSON. Ключ должен быть строкой и 1с тут ни при чем.
Далее в стандарте (стр. 2) спецификация объекта JSON:
Глобальный контекст.ПрочитатьJSON (Global context.ReadJSON)
Глобальный контекст (Global context)
ПрочитатьJSON (ReadJSON)
Синтаксис:
Тут вот какая «петрушка». Получается как с программами переводчиками: переводишь слово на английский, и тут же полученное значение пытаешься перевести обратно на русский и получаешь совершенно другой результат.
Выгружаю пакет XDTO в JSON и пытаюсь его тут же прочитать в структуру и появляется ошибка «недопустимое имя свойства #value». Я понимаю, что это означает и, в результате, вынужден «читать» JSON в соответствие, но вот правильно ли это?
Запись пакета XDTO в JSON:
Запись = Новый ЗаписьJSON;
Запись.ПроверятьСтруктуру=Истина;
ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Unix);
Запись.УстановитьСтроку(ПараметрыЗаписи);
ФабрикаXDTO.ЗаписатьJSON(Запись, МойОбъектXDTO);
ДанныеJSON = Запись.Закрыть();
И ту же пытаюсь прочитать его в структуру
обЧтениеJSON = Новый ЧтениеJSON;
обЧтениеJSON.УстановитьСтроку(ДанныеJSON );
стСтруктураСхемы = ПрочитатьJSON(обЧтениеJSON);
и тут же получаем сообщение об ошибке «недопустимое имя свойства #value». Ну, все, поворчал, пошел работать дальше.