Непредвиденный символ при чтении json 1с ошибка как исправить

Чтение файла JSON (ошибка)

получаю ответ на запрос.
Ответ приходит в виде Json

так вот при выполнении кода:
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПутьКФайлу);
Ответ=ПрочитатьJSON(ЧтениеJSON);

Выдет ошибку:
<ВнешняяОбработка.ЭкспериментыJSON.Форма.Форма.Форма(67)>: Ошибка при вызове метода контекста (ПрочитатьJSON)
Ответ=ПрочитатьJSON(ЧтениеJSON);
по причине:
Недопустимое имя свойства: ‘800’ для чтения JSON в объект Структура

Подскажите как быть?

Формат ваших данных не соответствует стандарту JSON. Ключ должен быть строкой и 1с тут ни при чем.

Далее в стандарте (стр. 2) спецификация объекта JSON:

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Глобальный контекст.Прочитать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». Ну, все, поворчал, пошел работать дальше.

Источник

не могу прочитать 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 в исключение.

Источник

Заметки из Зазеркалья

Реализовано в версии 8.3.6.1977.

JSON (JavaScript Object Notation) это текстовый формат обмена данными, широко используемый в веб-приложениях. По сравнению с XML он является более лаконичным и занимает меньше места. Кроме этого все браузеры имеют встроенные средства для работы с JSON.

Необходимость работы с этим форматом на уровне платформы обусловлена не только тем, что это «модный современный» формат, который прикладные решения 1С:Предприятия сами по себе могут использовать для интеграции со сторонними приложениями. Другая причина заключается ещё и в том, что JSON активно используется в HTTP интерфейсах. А в 1С:Предприятии как раз есть такие механизмы, в которых хочется использовать этот формат. Это REST интерфейс приложения, автоматически генерируемый платформой, и HTTP-сервисы, которые вы можете создавать самостоятельно.

Мы видим несколько основных сценариев использования JSON.

Во-первых, это интеграция с внешними системами через их HTTP интерфейсы: Google Calendar, Salesforce.com, REST интерфейс 1С:Предприятия, SharePoint и т.д.

Во-вторых, это организация собственного HTTP интерфейса прикладного решения.

В-третьих, обмен файлами JSON с внешними системами. Формирование конфигурационных, настроечных файлов. Использование их в процедурах обмена данными, например, с интернет-магазинами.

В-четвертых, это использование файлов JSON для обмена данными между разными приложениями 1С:Предприятия.

Потоковое чтение и запись JSON

В качестве иллюстрации потокового чтения JSON можно привести следующий пример:

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

При записи JSON вы самостоятельно формируете его структуру. Чтобы «подстраховать» вас от ошибок, объект ЗаписьJSON автоматически проверяет правильность записываемой структуры. Для увеличения скорости работы эту проверку можно отключить. В примере ниже это строка:

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Также при записи вы можете управлять некоторыми параметрами формируемого текста, например использованием двойных кавычек, переносом строк, символами отступа и экранированием символов. В примере ниже для форматирования текста используется символ табуляции:

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Результат такой записи:

Сериализация примитивных типов и коллекций в JSON

Вторая группа средств работы с JSON хороша тем, что избавляет вас от рутинной работы по чтению/записи каждого отдельного значения или свойства. При чтении документы JSON отображаются в фиксированный набор типов платформы: Строка, Число, Булево, Неопределено, Массив, ФиксированныйМассив, Структура, ФиксированнаяСтруктура, Соответствие, Дата. Соответственно, в обратную сторону, композиция объектов этих типов позволяет сформировать в памяти и быстро записать в файл структуру JSON. Таким образом, чтение и запись небольшого объема JSON заранее известной структуры можно производить немногими строчками кода.

Основное назначение этих средств мы видим в обмене информацией с внешними системами, чтении конфигурационных файлов в формате JSON.

Сериализацию вы можете выполнять с помощью методов глобального контекста ПрочитатьJSON() и ЗаписатьJSON(). Они работают в связке с объектами ЧтениеJSON и ЗаписьJSON.

В качестве примера десериализации JSON можно рассмотреть чтение массива из двух объектов:

Код 1С:Предприятия, выполняющий десериализацию, может выглядеть следующим образом:

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

А пример сериализации (записи) в JSON может выглядеть так:

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Функции преобразования и восстановления при сериализации

Не всегда сериализация может быть выполнена полностью автоматически. В жизни встречаются самые разные ситуации. Поэтому мы добавили возможность использовать «самописную» функцию обработки значений при записи в JSON и при чтении из JSON.

В методе ЗаписатьJSON() она называется Функция преобразования и описывается с помощью трёх параметров:

В методе ПрочитатьJSON() она называется Функция восстановления и для неё есть аналогичные параметры:

При записи в JSON эта функция полезна потому, что позволяет самостоятельно преобразовать в JSON те типы, которые не подлежат автоматическому преобразованию. Или даже совсем отказаться от их сериализации.

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Результат выполнения примера:

При чтении из JSON функция восстановления может использоваться для того, чтобы преобразовать данные JSON в типы 1С, которые не могут являться результатом автоматического преобразования, или для того, чтобы самостоятельно (не автоматически) преобразовать даты JSON в даты 1С:Предприятия.

Сериализация типа Дата

Данные типа Дата сериализуются в JSON автоматически, а вот обратное преобразование (десериализация) может быть выполнено не всегда. JSON не содержит типа Дата, значения даты представляются в нём строкой. Конечно, существуют некоторые форматы представления дат, но вообще говоря, внешний вид такой строки может быть самым разнообразным.

Для сериализации типа Дата в JSON у метода ЗаписатьJSON() вы можете использовать параметр НастройкиСериализации. Это объект встроенного языка, который позволяет указать, в каком варианте будет записана дата (UTC, локальная дата или локальная дата со смещением) и в каком формате (ISO, JavaScript или Microsoft).

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

При чтении даты из JSON всё обстоит сложнее. В параметре ИменаСвойствСоЗначениямиДата вы можете перечислить те свойства JSON, значения которых нужно преобразовать в дату 1С:Предприятия (тип Дата). А в параметре ОжидаемыйФорматДаты вам нужно указать, в каком формате эти данные содержатся в JSON (ISO, JavaScript или Microsoft).

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Однако если окажется, что в какой-то момент формат данных JSON не совпадает с ожидаемым форматом, будет вызвано исключение.

Использование JSON в HTTP интерфейсах приложений

Автоматически генерируемый REST интерфейс прикладных решений

Детальность представления метаданных вы можете указать, например, в адресной строке.

Сведения о метаданных не передаются:

Вся информация о метаданных включается в выгрузку:

HTTP-сервисы прикладного решения

HTTP-сервисы, реализованные в прикладном решении, также могут возвращать ответ в формате JSON. Для этого вам проще всего сформировать тело ответа в JSON, получить его как строку, а затем установить из этой строки тело HTTP ответа сервиса. При этом желательно указать, что BOM (Byte Order Mark, метка порядка байтов) использоваться не должна.

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Последний параметр (ИспользованиеByteOrderMark.НеИспользовать) вы можете и не указывать, если режим совместимости конфигурации не установлен, или он больше чем Версия8_3_5. Потому что в этом случае BOM автоматически будет использоваться только для кодировок UTF-16 и UTF-32, а для UTF-8, UTF-16LE/UTF-16BE, UTF-32LE/UTF-32BE и других она использоваться не будет.

Взаимодействие со сторонними HTTP сервисами

При взаимодействии со сторонними HTTP интерфейсами у вас также может возникнуть необходимость формирования запросов к ним в формате JSON. В этом случае алгоритм ваших действий будет аналогичным. Формируете тело запроса в JSON. Получаете тело в виде строки. Из этой строки устанавливаете тело HTTP запроса. BOM не используете.

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Дальнейшее развитие

Мы думаем над тем, чтобы предоставить вам возможность сериализации в JSON прикладных типов 1С:Предприятия: ссылок, объектов, наборов записей и т.д. Поэтому есть вероятность появления ещё одного, третьего уровня средств работы с JSON. Этот уровень позволит вам преобразовывать в JSON любые типы 1С:Предприятия, для которых поддерживается XDTO-сериализация в XML.

Источник

Непредвиденный символ при чтении JSON

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Добрый день! Пробовали настроить интеграцию с облачной телефонией Ростелеком. Т.к. инструкции по настройке с конфигурацией «Управление торговлей и взаимоотношениями с клиентами (CRM)» нигде нет, то, вероятно, при настройке совершили ошибку, т.к. теперь при начале настройки телефонии выходит ошибка «Непредвиденный символ при чтении JSON». Ошибка в закрытом модуле:
<ОбщийМодуль.сфпЛицензированиеСервер.Модуль(504)>: Ошибка при вызове метода контекста (ПрочитатьJSON)

Конфигурация: Управление торговлей и взаимоотношениями с клиентами:
1С:Управление торговлей (11.4.12.75) + 1С:CRM (3.0.19.33)
Версия продукта (3.0.19.42)
Рег. номер: 13181299

Сможете показать скриншот настроек телефонии?

Цитата
Людмила Шишкина написал:
Добрый день!

Сможете показать скриншот настроек телефонии?

Попробуйте очистить константы «Используемая АТС (Константы)» и «Используемая версия СофтФон (Константы)» (через «Все функции»).

Открылось окно настройки облачной телефонии, заново нажимаю Ростелеком. В результате ошибка (в файле прикрепил).

Т.е. я могу предположить, что программа загружает где-то сохраненные некорректные настройки по Ростелекому, и выходит такая ошибка. На самом деле как я полагаю сам модуль РАРУСу тоже необходимо доработать, чтобы можно было продолжить настройки, даже если они некорректные. Но это я так полагаю не быстро. А сейчас хотелось бы узнать, где именно сами настройки по телефонии хранятся, чтобы их можно было очистить?

Источник

1С 8.3 : Обмен данными с сайтом используя формат JSON в 1С

Формат JSON в 1С до версии 8.3.6 не реализован, но нижет я приведу примеры функций которые можно использовать для полноценной работы JSON в 1С предыдущий версий.

JSON (JavaScript Object Notation) это текстовый формат обмена данными, широко используемый в веб-приложениях. По сравнению с XML он является более лаконичным и занимает меньше места. Кроме этого все браузеры имеют встроенные средства для работы с JSON.

Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправитьНеобходимость работы с этим форматом на уровне платформы обусловлена не только тем, что это «модный современный» формат, который прикладные решения 1С:Предприятия сами по себе могут использовать для интеграции со сторонними приложениями. Другая причина заключается ещё и в том, что JSON активно используется в HTTP интерфейсах. А в 1С:Предприятии как раз есть такие механизмы, в которых хочется использовать этот формат. Это REST интерфейс приложения, автоматически генерируемый платформой, и HTTP-сервисы, которые вы можете создавать самостоятельно.

В платформе с версии 8.3.6:

Потоковое чтение и запись JSON:

В качестве иллюстрации потокового чтения JSON можно привести следующий пример:

Результат такой записи:

Сериализация примитивных типов и коллекций в JSON

Вторая группа средств работы с JSON хороша тем, что избавляет вас от рутинной работы по чтению/записи каждого отдельного значения или свойства. При чтении документы JSON отображаются в фиксированный набор типов платформы: Строка, Число, Булево, Неопределено, Массив, ФиксированныйМассив, Структура, ФиксированнаяСтруктура, Соответствие, Дата. Соответственно, в обратную сторону, композиция объектов этих типов позволяет сформировать в памяти и быстро записать в файл структуру JSON. Таким образом, чтение и запись небольшого объема JSON заранее известной структуры можно производить немногими строчками кода.

Основное назначение этих средств мы видим в обмене информацией с внешними системами, чтении конфигурационных файлов в формате JSON.

Сериализацию вы можете выполнять с помощью методов глобального контекста ПрочитатьJSON() и ЗаписатьJSON(). Они работают в связке с объектами ЧтениеJSON и ЗаписьJSON.

В качестве примера десериализации JSON можно рассмотреть чтение массива из двух объектов:

Подробнее вы можете посмотреть здесь

В платформе с версии 8.3.7:

Прежде всего, и в основном, XDTO сериализацию в JSON мы рекомендуем использовать при обмене данными между двумя прикладными решениями 1С:Предприятия. По сравнению с XML формат JSON более компактный, сериализация/десериализация в/из JSON выполняется быстрее. Кроме этого мы предприняли дополнительные меры для того, чтобы сократить объём передаваемых данных.

Кроме обмена между приложениями 1С:Предприятия этот механизм можно использовать и для обмена с внешними системами, готовыми принимать типы данных 1С:Предприятия. Например, XDTO сериализацию в JSON можно использовать для организации собственного HTTP интерфейса прикладного решения. Сервис на платформе 1С:Предприятия будет формировать ответ в памяти в виде строки JSON. А затем передавать её при помощи объекта HTTPСервисОтвет. Реализованный нами механизм сериализации полностью соответствует стандарту JSON. Поэтому внешняя система не должна испытывать каких-либо трудностей с десериализацией.

Использование XDTO сериализации в JSON для других задач видится нам маловероятным. Потому что если внешняя система не готова работать с прикладными типами 1С:Предприятия, то зачем их ей передавать? А если предполагается обмениваться только примитивными типами и коллекциями, то для этой задачи хорошо подходят методы ПрочитатьJSON() и ЗаписатьJSON(). Подробнее здесь

ДО платформы версии 8.3.6, т.е. 8.3.5 и ниже:

На HelpF уже есть статья где описан пример: Работа с форматом JSON в 1С но не приведены функции, вот они:

Примеры их использования:

Пишите комменты Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть фото Непредвиденный символ при чтении json 1с ошибка как исправить. Смотреть картинку Непредвиденный символ при чтении json 1с ошибка как исправить. Картинка про Непредвиденный символ при чтении json 1с ошибка как исправить. Фото Непредвиденный символ при чтении json 1с ошибка как исправить

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *