Реальная собственная строка и курсор ЧтениеJSON показывают отличие вида узла от его значения.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Собственная серверная процедура или кнопка обычной формы, толстый клиент. Строка целиком задана в примере; файлы и интернет не нужны.
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку("null");
ТекущийТип = Чтение.ТипТекущегоЗначения;
Если ТекущийТип = Неопределено Или ТекущийТип = ТипЗначенияJSON.Ничего Тогда
Сообщить("Текущего узла ещё нет; ТекущееЗначение не читаем");
КонецЕсли;
Попытка
Если Чтение.Прочитать() Тогда
Если Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.Null Тогда
Сообщить("Прочитан настоящий JSON null: " + Строка(Чтение.ТекущееЗначение));
КонецЕсли;
КонецЕсли;
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();Разбор по шагам
Установите собственную строку.
Переходите по узлам методом Прочитать и проверяйте их вид до чтения значения.
Закройте объект при успехе и при исключении.
Как проверить результат
Установленная справка для ТипТекущегоЗначения указывает Неопределено до начала / после конца чтения. Пример не обещает получить Ничего именно в этих точках: он допускает оба значения отсутствия узла.
Ничего не является JSON null. Для токена Null ТекущееЗначение=Неопределено, а для Ничего обращение к ТекущееЗначение вызывает исключение.
Ожидаемый результат
Вид и значение узла не смешиваются; данные не отправляются во внешний API.
На что обратить внимание
Не пытайтесь читать ТекущееЗначение у границ массива / объекта и Ничего.
BSL при сборке HTML не выполнялся.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.