Представление данных в формате JSON
Bool
Логическое значение.
- Тип в JSON —
bool. - Пример значения YTsaurus —
true. - Пример значения JSON —
true.
Int8, Int16, Int32, Int64
Целочисленные знаковые типы.
- Тип в JSON —
number. - Пример значения YTsaurus —
123456,-123456. - Пример значения JSON —
123456,-123456.
Uint8, Uint16, Uint32, Uint64
Целочисленные беззнаковые типы.
- Тип в JSON —
number. - Пример значения YTsaurus —
123456. - Пример значения JSON —
123456.
Float
Вещественное 4-байтное число.
- Тип в JSON —
number. - Пример значения YTsaurus —
0.12345679. - Пример значения JSON —
0.12345679.
Double
Вещественное 8-байтное число.
- Тип в JSON —
number. - Пример значения YTsaurus —
0.12345678901234568. - Пример значения JSON —
0.12345678901234568.
Decimal
Число с фиксированной точностью. Поддерживается только Decimal(22, 9).
- Тип в JSON —
string. - Пример значения YTsaurus —
-320.789. - Пример значения JSON —
"-320.789".
String, Yson
Бинарные строки. Алгоритм кодирования в зависимости от значения байта:
- [0-31] —
\u00XX(6 символов, обозначающих код символа юникода); - [32-126] — as is. Это читаемые однобайтовые символы, не требующие эскейпинга;
- [127-255] —
\u00XX.
При декодировании происходит обратный процесс. Коды символов в \u00XX более 255 не допускаются.
- Тип в JSON —
string. - Пример значения YTsaurus — последовательность из 4 байт:
- 5
0x05- управляющий символ; - 10
0x0a- перенос строки\n; - 107
0x6b- символk; - 255
0xff- символ юникодаÿ.
- 5
- Пример значения JSON —
"\u0005\nk\u00FF".
Utf8, Json, Uuid
Строковые типы в utf-8. Такие строки представляются в JSON строками с escaping'ом JSON-символов: \\, \", \n, \r, \t, \f.
-
Тип в JSON —
string. -
Пример значения YTsaurus — код на С++:
"Escaped characters: " "\\ \" \f \b \t \r\n" "Non-escaped characters: " "/ ' < > & []() ". -
Пример значения JSON —
"Escaped characters: \\ \" \f \b \t \r\nNon-escaped characters: / ' < > & []() ".
Date
Дата. Uint64, количество дней unix time.
- Тип в JSON —
string. - Пример значения YTsaurus —
18367. - Пример значения JSON —
"2020-04-15".
Datetime
Дата и время. Uint64, количество секунд unix time.
- Тип в JSON —
string. - Пример значения YTsaurus —
1586966302. - Пример значения JSON —
"2020-04-15T15:58:22Z".
Timestamp
Дата и время. Uint64, количество микросекунд unix time.
- Тип в JSON —
string. - Пример значения YTsaurus —
1586966302504185. - Пример значения JSON —
"2020-04-15T15:58:22.504185Z".
Interval
Временной интервал. Int64, точность до микросекунд, допустимы значения интервалов - не более 24 часов.
- Тип в JSON —
number. - Пример значения YTsaurus —
123456,-123456. - Пример значения JSON —
123456,-123456.
Optional
Означает, что значение может быть null. Если значение null, то в JSON также будет null. Если значение не null, то в JSON значение запишется так же, как если бы тип был не Optional.
- Тип в JSON — отсутствует.
- Пример значения YTsaurus —
null. - Пример значения JSON —
null.
List
Список. Упорядоченный набор значений заданного типа.
- Тип в JSON —
array. - Пример значения YTsaurus:
- тип —
List<Int32>; - значение —
1, 10, 100.
- тип —
- Пример значения JSON —
[1,10,100].
Stream
Поток. Однопроходной итератор по значениям одного типа.
- Тип в JSON —
array. - Пример значения YTsaurus:
- тип —
Stream<Int32>; - значение —
1, 10, 100.
- тип —
- Пример значения JSON —
[1,10,100].
Struct
Структура. Неупорядоченный набор значений с заданными именами и типом.
- Тип в JSON —
object. - Пример значения YTsaurus:
- тип —
Struct<'Id':Uint32,'Name':String,'Value':Int32,'Description':Utf8?>; - значение —
"Id":1,"Name":"Anna","Value":-100,"Description":null.
- тип —
- Пример значения JSON —
{"Id":1,"Name":"Anna","Value":-100,"Description":null}.
Tuple
Кортеж. Упорядоченный набор значений заданных типов.
- Тип в JSON —
array. - Пример значения YTsaurus:
- тип —
Tuple<Int32??,Int64???,String??,Utf8???>; - значение —
10,-1,null,"Some string".
- тип —
- Пример значения JSON —
[10,-1,null,"Some string"].
Dict
Словарь. Неупорядоченный набор пар ключ-значение. И для ключа, и для значения задан тип. В json записывается в массив массивов, состоящих из двух элементов.
- Тип в JSON —
array. - Пример значения YTsaurus:
- тип —
Dict<Int64,String>; - значение —
1:"Value1",2:"Value2".
- тип —
- Пример значения JSON —
[[1,"Value1"],[2,"Value2"]].