Перейти к основному содержимому

ЧтениеJson

Стд::Json::ЧтениеJson Доступность: Сервер

Объект, предназначенный для потокового чтения данных в формате JSON.

Методы чтения значений выбрасывают ИсключениеЧтенияJson - в следующих случаях:

  • не было начато чтение (не был вызван метод Следующий
  • чтение JSON завершилось (метод Следующий вернул Ложь)

Сравнение ссылочное

Иерархия типа

Базовые типы: Объект


Конструкторы

ЧтениеJson

Доступность: Сервер

ЧтениеJson(Источник: Строка)
Перегрузка:
ЧтениеJson(Источник: ПотокЧтения, Кодировка: Кодировка|Строка = Кодировка.Utf8)

Конструктор чтения JSON из строки Источник.


ЧтениеJson

Доступность: Сервер

ЧтениеJson(
Источник: ПотокЧтения,
Кодировка: Кодировка|Строка = Кодировка.Utf8)
Перегрузка:
ЧтениеJson(Источник: Строка)

Конструктор чтения JSON из потока Stream в кодировке Кодировка.


Свойства

ВидУзла

Доступность: Сервер ТолькоЧтение

ВидУзла: ВидУзлаJson?

Вид текущего узла JSON.

Undefined, если:

  1. Не было начато чтение (не был вызван метод Следующий.
  2. Чтение JSON завершилось (метод Следующий вернул Ложь).

Значение

Доступность: Сервер ТолькоЧтение

Значение: Строка

Текстовое значение текущего узла JSON. Для комментариев содержит пустую строку. До начала и после окончания текста JSON возвращает пустую строку.


ТекущаяСтрока

Доступность: Сервер ТолькоЧтение

ТекущаяСтрока: Число

Текущая строка в позиции чтения. Нумерация начинается с 1.

При чтении следующих видов значений, позиция чтения находится сразу после прочтенного значения:

  • Null,
  • Булево,
  • Число,
  • НачалоМассива,
  • КонецМассив,
  • НачалоОбъекта,
  • КонецОбъекта.

При чтении значения вида Строка, позиция находится сразу после открывающей кавычки

При чтении значения вида ИмяСвойства, позиция находится на том же месте, что будет при чтении значения после имени свойства. Т.е. при чтении имени свойства в паре "value": false, когда дойдет очередь до "value", позиция будет сразу после false.


ТекущийСтолбец

Доступность: Сервер ТолькоЧтение

ТекущийСтолбец: Число

Текущий столбец в позиции чтения. Нумерация начинается с 1.


Методы

ПрочитатьСодержимое

Доступность: Сервер

ПрочитатьСодержимое<ТипОбъекта>(Настройки: НастройкиЧтенияОбъектовJson): ТипОбъекта

Считывает объект JSON, начиная с текущей позиции, в объект типа ТипОбъекта, с настройками Настройки. Можно читать объекты любого типа, объявленного в коде (структура, Перечисление), и некоторых встроенных типов:

Сопоставление полей и свойств происходит следующим образом:

Имя свойства в структуре сопоставляется с именем свойства в исходном JSON.

Если необходимого поля структуры нет в читаемом тексте JSON, тогда значение поле устанавливается в Неопределено.

Исключения

ИсключениеЧтенияJson - если данные в исходном тексте JSON не получается прочитать как тип данных, указанный в структуре. Так же исключение будет выброшено в случае если ЧтениеJson позиционировано на неподходящем виде узла.

  • Если ТипОбъекта - Массив или Множество ожидается что текущий узел НачалоМассива.
  • Если ТипОбъекта - Соответствие или структура определенная в коде, ожидается что текущий узел НачалоОбъекта.
  • Для остальных типов ожидается что текущий узел соответствует типу ТипОбъекта.

ПрочитатьСодержимоеКакБайты

Доступность: Сервер

ПрочитатьСодержимоеКакБайты(): Байты

Читает содержимое узла JSON как шестнадцатеричное число и декодирует ее в байты. Разряды числа - символы из интервала [A-Fa-f0-9], которые могут быть разделены пробелами в произвольных местах. После вызова метода, позиция чтения не изменяется.

Исключения

ИсключениеЧтенияJson - если строка не является шестнадцатеричным представлением последовательности символов.


ПрочитатьСодержимоеКакБайтыBase64

Доступность: Сервер

ПрочитатьСодержимоеКакБайтыBase64(): Байты

Возвращает содержимое узла JSON, если это строка в формате Base64 и декодирует ее в байты. После вызова метода, позиция чтения не изменяется.

Исключения

ИсключениеЧтенияJson - если строка не в формате Base64


ПрочитатьСодержимоеКакБулево

Доступность: Сервер

ПрочитатьСодержимоеКакБулево(): Булево

Возвращает содержимое узла JSON, если он является логическим значением.

Исключения

ИсключениеЧтенияJson - если тип текущего узла не Булево


ПрочитатьСодержимоеКакВремя

Доступность: Сервер

ПрочитатьСодержимоеКакВремя(ИгнорироватьДату: Булево = Ложь): Время

Возвращает содержимое узла JSON, если это строка содержащая время, указанное в формате строковое представление hh:mm:ss или в представлении без часового пояса в формате:

ISO (ISO) и некоторых дополнительных:

  • YYYY[-,/,.]MM[-,/,.]DD([ ,T]hh:mm(:ss(.SSS)))
  • DD[-,/,.]MM[-,/,.]YYYY([ ,T]hh:mm(:ss(.SSS)))

Например:

  • "0001-01-01 22:01",
  • "0001-01-01 22:01:34.500",
  • "01.01.0001 22:01",
  • "01/01/0001 22:01.500".

Параметр ИгнорироватьДату позволяет читать строки содержащие ненулевую дату.

Например:

  • "2003-09-24 22:01",
  • "2003-09-24 22:01:34.500",
  • "24.09.2003 22:01",
  • "24/09/2003 22:01.500".

После вызова метода, позиция чтения не изменяется.

Исключения

ИсключениеЧтенияJson - если указан часовой пояс или формат времени неправильный или в представлении времени есть ненулевая дата.


ПрочитатьСодержимоеКакДата

Доступность: Сервер

ПрочитатьСодержимоеКакДата(ИгнорироватьВремя: Булево = Ложь): Дата

Возвращает содержимое узла JSON, если это строка содержащая дату, указанную в формате строковое представление: yyyy.mm.dd или в представлении без часового пояса в формате:

ISO (ISO) и некоторых дополнительных:

  • YYYY[-,/,.]MM[-,/,.]DD([ ,T]hh:mm(:ss(.SSS)))
  • DD[-,/,.]MM[-,/,.]YYYY([ ,T]hh:mm(:ss(.SSS)))

Например:

  • "2003-09-24 00:00",
  • "2003-09-24 00:00:00.000",
  • "24.09.2003 00:00",
  • "24/09/2003 00:00.000".

Параметр ИгнорироватьВремя позволяет читать строки содержащие ненулевое время.

Например:

  • "2003-09-24 22:01",
  • "2003-09-24 22:01:34.500",
  • "24.09.2003 22:01",
  • "24/09/2003 22:01.500".

После вызова метода, позиция чтения не изменяется.

Исключения

ИсключениеЧтенияJson - если указан часовой пояс или формат даты неправильный или в представлении даты есть ненулевое время.


ПрочитатьСодержимоеКакДатаВремя

Доступность: Сервер

ПрочитатьСодержимоеКакДатаВремя(): ДатаВремя

Возвращает содержимое узла JSON, если это строка содержащая дата-время, указанное в представлении без часового пояса в формате:

ISO (ISO) и некоторых дополнительных:

  • YYYY[-,/,.]MM[-,/,.]DD([ ,T]hh:mm(:ss(.SSS)))
  • DD[-,/,.]MM[-,/,.]YYYY([ ,T]hh:mm(:ss(.SSS)))

Например:

  • "2003-09-24 22:01",
  • "2003-09-24 22:01:34.500",
  • "24.09.2003 22:01",
  • "24/09/2003 22:01.500".

Если часовой пояс не указан, то время интерпретируется как местное.

Исключения

ИсключениеЧтенияJson - если указан часовой пояс или формат даты неправильный


ПрочитатьСодержимоеКакДлительность

Доступность: Сервер

ПрочитатьСодержимоеКакДлительность(): Длительность

Возвращает содержимое узла JSON, если это строка содержащая длительность, указанную в формате ISO) После вызова метода, позиция чтения не изменяется.

Исключения

ИсключениеЧтенияJson - если формат длительности неправильный,


ПрочитатьСодержимоеКакМассив

Доступность: Сервер

ПрочитатьСодержимоеКакМассив(): Массив<Объект?>

Читает массив объектов начиная с текущей позиции. Вызывает метод ПрочитатьСодержимое<Массив<Объект?>>().


ПрочитатьСодержимоеКакМомент

Доступность: Сервер

ПрочитатьСодержимоеКакМомент(): Момент

Возвращает содержимое узла JSON, если это строковое представление момента с часовым поясом, указанный в одном из форматов:

  • ISO (ISO):
    • YYYY[-,/,.]MM[-,/,.]DD([ ,T]hh:mm(:ss(.SSS)))[ ,]±h(h)(:mm),
    • DD[-,/,.]MM[-,/,.]YYYY([ ,T]hh:mm(:ss(.SSS)))[ ,]±h(h)(:mm).

Например:

  • "24.09.2003 22:01:34 +4",
  • "24.09.2003 22:01:34 +04",
  • "24.09.2003 22:01 +04:30",
  • "24.09.2003 22:01 03:00",
  • "24.09.2003+4",
  • "24.09.2003 +04",
  • "24/09/2003 Z",
  • "2003-09-24 22:01:34+3",
  • "2003-09-24 22:01:34-4:30",
  • "2003-09-24 22:01:34Z".

Обязательно наличие в формате часового пояса, иначе будет выброшено ИсключениеЧтенияJson.

  • Microsoft (Microsoft) Формат даты Microsoft вида:

    • /Date(1530144000000)/
    • /Date(1530144000000+hhmm)/

    Этот же вариант в формате JSON с экранированием будет выглядеть следующим образом: "\u002FDate(1530144000000+hhmm)\u002F". Дата указывается в формате Unix-времени. JSON поддерживает опциональное экранирование символа "/", поэтому для чтения допускаются оба варианта. Поскольку время указывается в формате UNIX, то информация о часовом поясе будет игнорироваться (не игнорировалось бы, если бы конструировался тип аналогичный типу Java - ZonedDateTime).

  • JavaScript (JavaScript)

    Указывается количество миллисекунд, прошедших с начала эры Unix (Unix Epoch) - полночь 1 января 1970 UTC.

Первый вызов пытается прочитать в каждом из форматов.

Исключения

ИсключениеЧтенияJson - если не указан часовой пояс или формат неправильный.


ПрочитатьСодержимоеКакСоответствие

Доступность: Сервер

ПрочитатьСодержимоеКакСоответствие(): Соответствие<Строка, Объект?>

Читает соответствие начиная с текущей позиции. Вызывает метод ПрочитатьСодержимое<Соответствие<Строка, Объект?>>().


ПрочитатьСодержимоеКакСтроку

Доступность: Сервер

ПрочитатьСодержимоеКакСтроку(): Строка

Возвращает содержимое узла JSON, если это строка.

Исключения

ИсключениеЧтенияJson - если тип текущего узла не Строка


ПрочитатьСодержимоеКакУуид

Доступность: Сервер

ПрочитатьСодержимоеКакУуид(): Ууид

Возвращает содержимое узла JSON, если это строка содержащая содержащее представление uuid. После вызова метода, позиция чтения не изменяется.

Исключения

ИсключениеЧтенияJson - если формат uuid неправильный


ПрочитатьСодержимоеКакЧисло

Доступность: Сервер

ПрочитатьСодержимоеКакЧисло(): Число

Возвращает содержимое узла JSON, если это числовое значение.

Исключения

ИсключениеЧтенияJson - если тип текущего узла не Число


Следующий

Доступность: Сервер

Следующий(): Булево

Считывает очередной узел JSON. При этом свойству ВидУзла присваивается значение, соответствующие прочитанным данным. Возвращает признак, что был следующий элемент.


Список унаследованных методов

Объект

ВСтроку, ПолучитьТип, Представление