---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/ru/yql/types/json.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

# Представление данных в формате JSON

## Bool {#bool}

Логическое значение.

* Тип в JSON — `bool`.
* Пример значения YTsaurus — `true`.
* Пример значения JSON — `true`.

## Int8, Int16, Int32, Int64 {#int}

Целочисленные знаковые типы.

* Тип в JSON — `number`.
* Пример значения YTsaurus — `123456`, `-123456`.
* Пример значения JSON — `123456`, `-123456`.

## Uint8, Uint16, Uint32, Uint64 {#uint}

Целочисленные беззнаковые типы.

* Тип в JSON — `number`.
* Пример значения YTsaurus — `123456`.
* Пример значения JSON — `123456`.

## Float {#float}

Вещественное 4-байтное число.

* Тип в JSON — `number`.
* Пример значения YTsaurus — `0.12345679`.
* Пример значения JSON — `0.12345679`.

## Double {#double}

Вещественное 8-байтное число.

* Тип в JSON — `number`.
* Пример значения YTsaurus — `0.12345678901234568`.
* Пример значения JSON — `0.12345678901234568`.

## Decimal {#decimal}

Число с фиксированной точностью. Поддерживается только Decimal(22, 9).

* Тип в JSON — `string`.
* Пример значения YTsaurus — `-320.789`.
* Пример значения JSON — `"-320.789"`.

## String, Yson {#string}

Бинарные строки. Алгоритм кодирования в зависимости от значения байта:

* [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` - символ юникода `ÿ`.
* Пример значения JSON — `"\u0005\nk\u00FF"`.

## Utf8, Json, Uuid {#utf}

Строковые типы в utf-8. Такие строки представляются в JSON строками с escaping'ом JSON-символов: `\\`, `\"`, `\n`, `\r`, `\t`, `\f`.

* Тип в JSON — `string`.
* Пример значения YTsaurus — код на С++:

  ```c++
  "Escaped characters: "
  "\\ \" \f \b \t \r\n"
  "Non-escaped characters: "
  "/ ' < > & []() ".
  ```

* Пример значения JSON — `"Escaped characters: \\ \" \f \b \t \r\nNon-escaped characters: / ' < > & []() "`.

## Date {#date}

Дата. Uint64, количество дней unix time.

* Тип в JSON — `string`.
* Пример значения YTsaurus — `18367`.
* Пример значения JSON — `"2020-04-15"`.

## Datetime {#datetime}

Дата и время. Uint64, количество секунд unix time.

* Тип в JSON — `string`.
* Пример значения YTsaurus — `1586966302`.
* Пример значения JSON — `"2020-04-15T15:58:22Z"`.

## Timestamp {#timestamp}

Дата и время. Uint64, количество микросекунд unix time.

* Тип в JSON — `string`.
* Пример значения YTsaurus — `1586966302504185`.
* Пример значения JSON — `"2020-04-15T15:58:22.504185Z"`.

## Interval {#interval}

Временной интервал. Int64, точность до микросекунд, допустимы значения интервалов - не более 24 часов.

* Тип в JSON — `number`.
* Пример значения YTsaurus — `123456`, `-123456`.
* Пример значения JSON — `123456`, `-123456`.

## Date32 {#date32}

Дата. Int32, количество дней относительно unix epoch (может быть отрицательным).

* Тип в JSON — `string`.
* Пример значения YTsaurus — `-8722`.
* Пример значения JSON — `"1946-02-14"`.

## Datetime64 {#datetime64}

Дата и время. Int64, количество секунд относительно unix epoch.

* Тип в JSON — `string`.
* Пример значения YTsaurus — `-753511371`.
* Пример значения JSON — `"1946-02-14T19:17:09Z"`.

## Timestamp64 {#timestamp64}

Дата и время. Int64, количество микросекунд относительно unix epoch.

* Тип в JSON — `string`.
* Пример значения YTsaurus — `-753511370765432`.
* Пример значения JSON — `"1946-02-14T19:17:09.234568Z"`.

## Interval64 {#interval64}

Временной интервал. Int64, точность до микросекунд.

* Тип в JSON — `number`.
* Пример значения YTsaurus — `123456`, `-123456`.
* Пример значения JSON — `123456`, `-123456`.

## TzDate32, TzDatetime64, TzTimestamp64 {#tzdate32}

Временные типы с меткой временной зоны. Значение позиции во времени хранится в UTC.

* Тип в JSON — `string`.
* Значение представляется как строковое представление времени и временная зона через запятую.
* Пример значения JSON — `"1946-02-14,Europe/Moscow"`, `"1946-02-14T19:17:09,Europe/Moscow"`, `"1946-02-14T19:17:09.234568,Europe/Moscow"` для TzDate32, TzDatetime64 и TzTimestamp64 соответственно.

## Optional {#optional}

Означает, что значение может быть `null`. Если значение `null`, то в JSON также будет `null`. Если значение не `null`, то в JSON значение запишется так же, как если бы тип был не `Optional`.

* Тип в JSON — отсутствует.
* Пример значения YTsaurus — `null`.
* Пример значения JSON — `null`.

## List {#list}

Список. Упорядоченный набор значений заданного типа.

* Тип в JSON — `array`.
* Пример значения YTsaurus:
  * тип — `List<Int32>`;
  * значение — `1, 10, 100`.
* Пример значения JSON — `[1,10,100]`.

## Stream {#stream}

Поток. Однопроходной итератор по значениям одного типа.

* Тип в JSON — `array`.
* Пример значения YTsaurus:
  * тип — `Stream<Int32>`;
  * значение — `1, 10, 100`.
* Пример значения JSON — `[1,10,100]`.

## Struct {#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 {#tuple}

Кортеж. Упорядоченный набор значений заданных типов.

* Тип в JSON — `array`.
* Пример значения YTsaurus:
  * тип — `Tuple<Int32??,Int64???,String??,Utf8???>`;
  * значение — `10,-1,null,"Some string"`.
* Пример значения JSON — `[10,-1,null,"Some string"]`.

## Dict {#dict}

Словарь. Неупорядоченный набор пар ключ-значение. И для ключа, и для значения задан тип. В json записывается в массив массивов, состоящих из двух элементов.

* Тип в JSON — `array`.
* Пример значения YTsaurus:
  * тип — `Dict<Int64,String>`;
  * значение — `1:"Value1",2:"Value2"`.
* Пример значения JSON — `[[1,"Value1"],[2,"Value2"]]`.

