Link Search Menu Expand Document

ЧтениеJson

Стд::Json::ЧтениеJson
Базовые типы: Объект

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

graph BT;
ЧтениеJson-->Объект;

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

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

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

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


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

ЧтениеJson

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

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


ЧтениеJson

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

Свойства

ВидУзла

ТолькоЧтение ВидУзла: ВидУзла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. При этом свойству ВидУзла присваивается значение, соответствующие прочитанным данным. Возвращает признак, что был следующий элемент.


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

Объект