Представление данных в формате 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"]]
.