A1sJ.ToJSON
Назначение: преобразует 1С‑значение в строку JSON с помощью XDTOSerializer.
Опции: компактная запись без пробелов/переносов и вывод результата сообщением.
Опции: компактная запись без пробелов/переносов и вывод результата сообщением.
Сигнатура
Function ToJSON(Value, NoSpaces=True, ShowMessage=False) Export
Как работает (по исходному коду)
Export //⚙
JSONWriter = New JSONWriter(); //✏
If Boolean(NoSpaces) Тогда //⚡
Settings = New JSONWriterSettings(JSONLineBreak.None, ""); //✏
Иначе
Settings = New JSONWriterSettings(JSONLineBreak.Auto, " "); //✏
КонецЕсли;
JSONWriter.SetString(Settings);
Try //✱
XDTOSerializer.WriteJSON(JSONWriter, Value, XMLTypeAssignment.Explicit);
JSONText = JSONWriter.Close(); //✏
Except
JSONText = ""; //✏
EndTry;
If Boolean(ShowMessage) Тогда //⚡
A1sS.Print(JSONText, "JSON", ""); //▶️
КонецЕсли;
Return JSONText; //↩
Параметры
- Value — любое сериализуемое значение 1С (числа, строки, Структура, Массив, Соответствие, и т.д.).
- NoSpaces — булево, по умолчанию Истина; если Ложь — форматирует с отступами.
- ShowMessage — булево; если Истина — печатает JSON через A1sS.Print.
Возвращает
Строка JSON; при исключении — пустая строка.
Примеры
// Массив
JSON = A1sJ.ToJSON(Новый Массив(1,2,3)); // → "[1,2,3]"
// Структура с отступами
JSON = A1sJ.ToJSON(Новый Структура("X,Y",5,10), Ложь);
// И мгновенно показать
JSON = A1sJ.ToJSON(Объект, Истина, Истина);
Нюансы и ограничения
✅ Использует стандартный XDTOSerializer → совместимость с 1С
❗ Не все типы 1С сериализуются «как есть» (например, ссылки)
❗ При ошибке возвращается пустая строка — проверяйте результат