Тип: Число, Неопределено. Указывает на позицию сразу после прочитанного значения. Например, перед чтением первого элемента - 0, после чтения первого элемента -1 .
Полное описание, параметры и ограничения
ЧтениеJSON.ТекущаяСтрока (JSONReader.CurrentLine)
ЧтениеJSON (JSONReader)
ТекущаяСтрока (CurrentLine)
Доступен, начиная с версии 8.3.6.
Использование:
Только чтение.
Описание:
Тип: Число, Неопределено.
Указывает на позицию сразу после прочитанного значения.
Например, перед чтением первого элемента - 0, после чтения первого элемента -1 .
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.6.
Методическая информация
Практические примеры
Посмотреть типы, значения и позиции при последовательном чтении JSON
Не загружаем структуру целиком: последовательно читаем токены и считаем имена свойств. Null, число и строка различаются по типу токена.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все исходные JSON-строки и значения заданы в коде. Файлы, токены доступа, интернет и рабочая база не нужны.
Не подставляйте в упражнения ответы реального API с персональными данными. Сначала проверяйте неизменённый учебный набор.
Текст = "{""name"":""Книга"",""quantity"":3,""enabled"":true,""tags"":[""paper""],""note"":null}";
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Текст);
ЧислоИмен = 0;
Попытка
Пока Чтение.Прочитать() Цикл
Сообщить(СтрШаблон("Строка %1; позиция %2; тип %3; значение %4",
Чтение.ТекущаяСтрока, Чтение.ТекущаяПозиция,
Чтение.ТипТекущегоЗначения, Чтение.ТекущееЗначение));
Если Чтение.ТипТекущегоЗначения = ТипЗначенияJSON.ИмяСвойства Тогда
ЧислоИмен = ЧислоИмен + 1;
КонецЕсли;
КонецЦикла;
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ЧислоИмен <> 5 Тогда
ВызватьИсключение "В учебном объекте ожидалось пять имён свойств";
КонецЕсли;
Сообщить(ЧислоИмен);Разбор по шагам
Прочитать перемещает состояние на очередной JSON-токен; Ложь означает конец входа.
Имя свойства и его значение — разные токены. Начало и конец массива/объекта тоже встречаются при чтении.
ТипТекущегоЗначения отличает строку от числа, даже если отображаемые тексты похожи.
ТекущаяСтрока и ТекущаяПозиция помогают ориентироваться в документе. Это не индекс элемента массива данных.
Как проверить результат
Подсчитано 5 имён: name, quantity, enabled, tags, note.
Для quantity значение числовое 3; для элемента tags значение строковое paper.
Перенесите свойства на разные строки корректного JSON: содержимое не меняется, номера текущих строк меняются.
Ожидаемый результат
Получена карта последовательности токенов и мест в исходном тексте для изучения потокового JSON API.
На что обратить внимание
ТекущееЗначение не следует читать как готовый объект или массив в момент токена начала контейнера.
Позиции относятся к тексту JSON, не к байтам UTF-8 на диске. Не используйте их как файловые смещения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.