Ошибка при чтении JSON файла

1. human23 22.01.24 16:29 Сейчас в теме
Версия платформы: 8.3.13.1809
Режим совместимости: 8.3.13

К данному сообщению прикреплен файл "report.json", в нем содержится отчет в виде JSON.
Мне требуется из этого JSON получить объект XDTO типа "{namespace}report". Определение этого типа есть в schema.xsd.

При попытке выполнения следующего кода:

ДокументКПрочтению = Новый ТекстовыйДокумент();
ДокументКПрочтению.Прочитать("<file_path>"); // Здесь <file_path> путь к файлу "report.json"

СодержимоеДокументаКПрочтению = ДокументКПрочтению.ПолучитьТекст();

ЧтениеСодержимогоДокументаКПрочтению = Новый ЧтениеJSON;
ЧтениеСодержимогоДокументаКПрочтению.УстановитьСтроку(СодержимоеДокументаКПрочтению);

Тип = ФабрикаXDTO.Тип("namespace", "report"); // Определение типа "report" есть в файле "schema.xsd"

ФабрикаXDTO.ПрочитатьJSON(ЧтениеСодержимогоДокументаКПрочтению, Тип);
Показать


получаю ошибку:
КонецСвойства: moderator Форма: Элемент Тип: {namespace}moderator

При использовании метода ПрочитатьJSON глобального контекста ошибок никаких нет.

Прошу помощи в решении данной проблемы.
Прикрепленные файлы:
report.json
schema.xsd
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 22.01.24 19:57 Сейчас в теме
(1)Так надо, наверно, не глобальную фабрику использовать, а создать свою из файла XSD
Фабрика = СоздатьФабрикуXDTO(ПолноеИмяФайлаXSD);

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПолноеИмяФайлаJSON);

ОбъектXDTO = Фабрика.ПрочитатьJSON(ЧтениеJSON);
5. human23 23.01.24 10:00 Сейчас в теме
(2)

Спасибо за ответ.

Не совсем понимаю как это должно помочь, так как в схеме присутствуют другие сложные элементы которые валидируются без ошибок, но я попробую.
3. Said-We 23.01.24 00:06 Сейчас в теме
(1) Ваш json нормально читает даже SQL.
Может у вас не читается, из-за того, что у вас в схеме у модератора у поля ID тип строковый. А в данных число.
У вас вообще половина ID строковые, а другая половина ID числовые.

А точно прямо нужно XDTO использовать?
Может ручками проще разобрать приходящее?
Прикрепленные файлы:
4. human23 23.01.24 09:55 Сейчас в теме
(3)

Ваш json нормально читает даже SQL.


У меня нет сомнений насчет валидности JSON.

Может у вас не читается, из-за того, что у вас в схеме у модератора у поля ID тип строковый. А в данных число.
У вас вообще половина ID строковые, а другая половина ID числовые.


Да, спасибо за замечание. Исправлю. ID должны быть только числовыми.

А точно прямо нужно XDTO использовать?
Может ручками проще разобрать приходящее?


Временно откажусь для решения задачи, но мне бы хотелось выяснить почему не работает. К сожалению, текущий API не не поддерживает XML, а мне необходимо проверять структуру сообщения и типы.
6. user1880116 23.01.24 11:04 Сейчас в теме
(4)
У меня нет сомнений насчет валидности JSON.
Исправлю. ID должны быть только числовыми.

Ага.
7. human23 23.01.24 13:13 Сейчас в теме
(6)

У меня нет сомнений насчет валидности JSON.


Здесь я имел в виду, что сам JSON соответствует стандарту, а не равенство типов.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот