Функция JSON_НУЖНО_КОДИРОВАТЬ
Строковые данные в JSON заключаются в кавычки. Для символов "кавычка", "обратный слэш" и специальных символов используются последовательности, начинающиеся с обратного слеша. Например, символ табуляции (ASCII 9) представляется как "\t", a символ ASCII 4 как "\u0004". При разборе JSON такие последовательности преобразуются в "сырые" данные. Чтобы записать такие данные в XML их нужно снова закодировать. Само кодирование выполняется функцией JSON_КОДИРОВАТЬ.
Функция используется при формировании XML, предназначенного для последующего преобразования в JSON функцией XML_В_JSON. См. также формат XML для представления значения JSON.
ФУНКЦИЯ ЛОГИКА: JSON_НУЖНО_КОДИРОВАТЬ(СТРОКА: текст)
Параметры
- текст
- Текст, для которого определяется необходимость кодирования специальных символов и заключения в кавычки.
Возвращаемое значение
ДА – если надо кодировать, НЕТ – в противном случае.
Необходимость кодирования определяется наличием в строке специальных символов (ASCII 0 - 31) или пробельных символов в начале или конце строки. Кодирование выполняется для того, чтобы исходные данные не исказились при записи текста в XML (в т.ч. из-за применения форматирования). XML элемент, содержащий закодированный текст, должен иметь атрибут quoted со значением true.
Для упрощения представления данных JSON в XML строки, которые не требуют кодирования и заключения в кавычки, записываются в XML непосредственно. Для таких узлов XML атрибут quoted должен отсутствовать или быть равным false. Типичная ситуация, когда строк не требующих кодирования большинство. Наиболее характерный случай, когда кодирование необходимо – это многострочный текст.
Пример
ПЕРЕМ XML_КУРСОР: кур //... ПЕРЕМ текст = "Первая строка^r^sвторая строка" ЕСЛИ JSON_НУЖНО_КОДИРОВАТЬ(текст) ТО кур.ЗАП_АТРИБУТ("quoted", "true") кур.ЗАП_ТЕКСТ(JSON_КОДИРОВАТЬ(текст)) ИНАЧЕ кур.ЗАП_ТЕКСТ(текст) КОНЕЦ_ЕСЛИ