ЧтениеJson
Стд::Json::ЧтениеJson Базовые типы: Объект |
Иерархия типа
graph BT;
ЧтениеJson-->Объект;
Объект, предназначенный для потокового чтения данных в формате JSON.
Методы чтения значений выбрасывают ИсключениеЧтенияJson - в следующих случаях:
- не было начато чтение (не был вызван метод Следующий
- чтение JSON завершилось (метод Следующий вернул
Ложь
)
Сравнение ссылочное
Конструкторы
ЧтениеJson
ЧтениеJson(Источник: Строка)
Перегрузка: ЧтениеJson(Источник: ПотокЧтения, Кодировка: Кодировка|Строка = Кодировка.Utf8) |
Конструктор чтения JSON из строки Источник
.
ЧтениеJson
ЧтениеJson(
Источник: ПотокЧтения,
Кодировка: Кодировка|Строка = Кодировка.Utf8)
Перегрузка: ЧтениеJson(Источник: Строка) |
Свойства
ВидУзла
ТолькоЧтение ВидУзла: ВидУзлаJson? |
Вид текущего узла JSON.
Undefined
, если:
- Не было начато чтение (не был вызван метод Следующий.
- Чтение JSON завершилось (метод Следующий вернул
Ложь
).
Значение
ТолькоЧтение Значение: Строка |
Текстовое значение текущего узла JSON. Для комментариев содержит пустую строку. До начала и после окончания текста JSON возвращает пустую строку.
ТекущаяСтрока
ТолькоЧтение ТекущаяСтрока: Число |
Текущая строка в позиции чтения. Нумерация начинается с 1.
При чтении следующих видов значений, позиция чтения находится сразу после прочтенного значения:
- Null,
- Булево,
- Число,
- НачалоМассива,
- КонецМассив,
- НачалоОбъекта,
- КонецОбъекта.
При чтении значения вида Строка
, позиция находится сразу после открывающей кавычки
При чтении значения вида ИмяСвойства
, позиция находится на том же месте, что будет при чтении значения после имени свойства. Т.е. при чтении имени свойства в паре "value": false
, когда дойдет очередь до "value"
, позиция будет сразу после false
.
ТекущийСтолбец
ТолькоЧтение ТекущийСтолбец: Число |
Текущий столбец в позиции чтения. Нумерация начинается с 1.
Методы
ПрочитатьСодержимое
ПрочитатьСодержимое<ТипОбъекта>(Настройки: НастройкиЧтенияОбъектовJson): ТипОбъекта
Считывает объект JSON, начиная с текущей позиции, в объект типа ТипОбъекта
, с настройками Настройки
. Можно читать объекты любого типа, объявленного в коде (структура, Перечисление), и некоторых встроенных типов:
- Коллекция:
- Соответствие,
- Строка,
- Число,
- Булево,
- Момент,
- ДатаВремя,
- Дата,
- Время,
- Длительность,
- Ууид,
- Версия,
- Перечисление,
- Байты.
Сопоставление полей и свойств происходит следующим образом:
- true, false - отображаются в Булево,
- “Любая строка” - отображается в Строка,
- Любое число, (1, 1.56, 0) - отображается в Число
- Объект { … } - отображается в структуру либо в Соответствие,
- Массив [ …] - отображается в Массив или Множество,
- Строка в формате Момент или ДатаВремя отображается в Момент или ДатаВремя,
- Строка в формате Ууид отображается в Ууид,
- Строка в формате Версия отображается в Версия.
Имя свойства в структуре сопоставляется с именем свойства в исходном 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. При этом свойству ВидУзла присваивается значение, соответствующие прочитанным данным. Возвращает признак, что был следующий элемент.