Данные в формате JSON можно получать не только в виде файла, но и в виде строки. Например, при работе с HTTP-сервисами очень часто нужно работать с телом HTTP-запроса, которое представляет собой строку JSON. В таких случаях можно писать данные не в файл, а в строку. И потом подставлять эту строку в качестве тела HTTP-запроса. И, наоборот, брать строку, которая является телом HTTP-запроса, и читать из нее данные с помощью объекта ЧтениеJSON.
Для этого нужно использовать метод УстановитьСтроку() объектов ЗаписьJSON/ЧтениеJSON. После вызова этого метода для получения строки со сформированными данными JSON достаточно просто завершить запись документа методом Закрыть() объекта ЗаписьJSON (листинг 1.8).
Листинг 1.8. Запись и чтение содержимого JSON в/из строки
&НаСервереБезКонтекста
Процедура РаботаСоСтрокойНаСервере()
Сообщение = Новый СообщениеПользователю;
// Создать объект записи и записать строковое значение в строку JSON.
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Запись.ЗаписатьЗначение("строковое значение");
СтрокаJSON = Запись.Закрыть();
// Показать результат.
Сообщение.Текст = СтрокаJSON;
Сообщение.Сообщить();
// Создать объект чтения и прочитать JSON из строки.
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(СтрокаJSON);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.ИмяСвойства Тогда
Сообщение.Текст = "Имя = " + Чтение.ТекущееЗначение;
Сообщение.Сообщить();
КонецЕсли;
Если Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.Булево Или
Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.Строка Или
Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.Число Или
Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.Комментарий Тогда
Сообщение.Текст = "Значение = " + Чтение.ТекущееЗначение;
Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
// Завершить чтение.
Чтение.Закрыть();
КонецПроцедуры