Имя: Пароль:
1C
 
Запись структуры в JSON
0 ilstar2
 
28.06.24
13:35
Всем привет, не могу понять, как структуру записать в JSON
Структура содержит ссылки, числа и две таблицы значений
и я не могу сообразить как это сделать
1 ilstar2
 
28.06.24
13:36
ЗаписатьJSON(ЗаписьJSON, ВыходнаяСтруктура); вот так ругается, что передано значние недопустимого типа
2 Волшебник
 
28.06.24
13:37
ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
    ЗаписатьJSON(ЗаписьJSON, структура);
    json = ЗаписьJSON.Закрыть();
3 Мультук
 
28.06.24
13:40
пДанные -- структура


Процедура ВыгрузитьДанныеJSON(пДанные, ИмяФайла)
    
    ПараметрыЗаписиЖсон = Новый ПараметрыЗаписиJSON;
    
    ЗаписьЖсон = Новый ЗаписьJSON;
    ЗаписьЖсон.УстановитьСтроку(ПараметрыЗаписиЖсон);
    СериализаторXDTO.ЗаписатьJSON(ЗаписьЖсон, пДанные, НазначениеТипаXML.Явное);
    
    стр = ЗаписьЖсон.Закрыть();
    
    
    фф = Новый ЗаписьТекста(ИмяФайла);
    фф.ЗаписатьСтроку(стр);
    фф.Закрыть();
    
Конецпроцедуры  


Функция ПолучитьДанныеЖсон(ИмяФайла)
    ЧтениеЖсон = Новый ЧтениеJSON;
    ЧтениеЖсон.ОткрытьФайл(ИмяФайла);
    
    об = СериализаторXDTO.ПрочитатьJSON(ЧтениеЖсон);
    
    ЧтениеЖсон.Закрыть();
    
    Возврат об;
    
КонецФункции


P.S.
https://wonderland.v8.1c.ru/search/index.php?tags=+JSON
4 Кондер
 
28.06.24
13:42
Ид ссылки и массив массивов
5 SilentMan
 
28.06.24
13:45
(0) Отказаться от ТЗ. Штатные механизмы не умеют сериализовать ТЗ.
https://its.1c.ru/db/v83doc#bookmark:dev:TI000001491
6 Мультук
 
28.06.24
13:50
(5)

>> Штатные механизмы не умеют сериализовать ТЗ.

Как же тогда работает вот этот код ?


Функция ВыгрузитьДанныеJSON(..) в (3)

тз = Запрос.Выполнить().Выгрузить();
пСтрОтвет = Новый Структура("Ответ, ТекстОшибки", тз, текстОшибки);

ВыгрузитьДанныеJSON(пСтрОтвет, ИмяФайлаОтвета);
7 SilentMan
 
28.06.24
13:54
(6) Потому что ЗаписатьJSON и XDTO-сериализация в формат JSON - это совсем не одно и тоже. Хотя слово JSON есть и там и там и формат на выходе будет JSON.
8 Кот16
 
28.06.24
14:49
ЗаписатьJSON не любит ссылочные значения и Null.
9 craxx
 
28.06.24
15:24
(0)
1. Таблицу значений надо преобразовать в массив структур.
2. Ссылки надо опять же как-то преобразовать, например в УИД.
3. Null преобразовать в Неопределено
2 + 2 = 3.9999999999999999999999999999999...