Функции JSON
Типы JSON-функций
Существует два набора функций для парсинга JSON:
simpleJSON*(visitParam*), предназначенные для сверхбыстрого парсинга ограниченного подмножества JSON.JSONExtract*, предназначенные для парсинга обычного JSON.
функции simpleJSON (visitParam)
В ClickHouse есть специальные функции для работы с упрощённым JSON. Все эти JSON-функции основаны на строгих предположениях о том, каким может быть JSON. Они стараются делать как можно меньше, чтобы выполнить задачу как можно быстрее.
Делаются следующие допущения:
- Имя поля (аргумент функции) должно быть константой.
- Имя поля должно быть канонически закодировано в JSON. Например:
simpleJSONHas('{"abc":"def"}', 'abc') = 1, ноsimpleJSONHas('{"\\u0061\\u0062\\u0063":"def"}', 'abc') = 0 - Поля ищутся на любом уровне вложенности, без различия. Если есть несколько совпадающих полей, используется первое вхождение.
- В JSON нет пробелов вне строковых литералов.
Функции JSONExtract
Эти функции основаны на библиотеке simdjson и предназначены для более сложных требований к парсингу JSON.
Регистронезависимые функции JSONExtract
Эти функции выполняют регистронезависимое сопоставление ключей ASCII при извлечении значений из JSON-объектов. Они работают так же, как и их регистрозависимые аналоги, за исключением того, что ключи объектов сопоставляются без учета регистра. Если нескольким ключам соответствуют разные варианты написания, возвращается первое совпадение.
Эти функции могут работать медленнее, чем их регистрозависимые аналоги, поэтому по возможности используйте обычные функции JSONExtract.
JSONAllPaths
Представлена в версии v24.8
Возвращает список всех путей, хранящихся в каждой строке JSON-столбца.
Синтаксис
Аргументы
json— столбец JSON.JSON
Возвращаемое значение
Возвращает массив всех путей в столбце JSON. Array(String)
Примеры
Пример использования
JSONAllPathsWithTypes
Добавлено в версии: v24.8
Возвращает список всех путей и их типов данных, хранящихся в каждой строке JSON-столбца.
Синтаксис
Аргументы
json— JSON-столбец.JSON
Возвращаемое значение
Возвращает карту всех путей и соответствующих им типов данных в JSON-столбце. Map(String, String)
Примеры
Пример использования
JSONArrayLength
Появилась в версии: v23.2
Возвращает количество элементов во внешнем JSON‑массиве.
Функция возвращает NULL, если входная JSON‑строка некорректна.
Синтаксис
Псевдонимы: JSON_ARRAY_LENGTH
Аргументы
json— строка с корректным JSON.String
Возвращаемое значение
Возвращает количество элементов массива, если json — это корректная строка JSON-массива, в противном случае возвращает NULL. Nullable(UInt64)
Примеры
Пример использования
JSONDynamicPaths
Добавлено в: v24.8
Возвращает список динамических путей, которые хранятся в виде отдельных подстолбцов в JSON-столбце.
Синтаксис
Аргументы
json— JSON-столбец.JSON
Возвращаемое значение
Возвращает массив динамических путей в JSON-столбце. Array(String)
Примеры
Пример использования
JSONDynamicPathsWithTypes
Добавлено в: v24.8
Возвращает список динамических путей, которые хранятся как отдельные подстолбцы, и их типов в каждой строке JSON-столбца.
Синтаксис
Аргументы
json— столбец JSON.JSON
Возвращаемое значение
Возвращает словарь динамических путей и их типов данных в столбце JSON. Map(String, String)
Примеры
Пример использования
JSONExtract
Добавлена в версии: v19.14
Парсит JSON и извлекает значение заданного типа данных ClickHouse.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля и более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*return_type— тип данных ClickHouse, который нужно вернуть.String
Возвращаемое значение
Возвращает значение указанного типа данных ClickHouse, если это возможно, в противном случае возвращает значение по умолчанию для этого типа.
Примеры
Пример использования
JSONExtractArrayRaw
Появилась в версии: v20.1
Возвращает массив с элементами JSON-массива, каждый из которых представлен как необработанная строка.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает массив строк с элементами JSON-массива. Если соответствующее значение не является массивом или не существует, возвращается пустой массив. Array(String)
Примеры
Пример использования
JSONExtractArrayRawCaseInsensitive
Добавлено в: v25.8
Возвращает массив с элементами JSON-массива, каждый из которых представлен в виде неразобранной строки, с использованием сопоставления ключей без учета регистра. Эта функция аналогична JSONExtractArrayRaw.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к массиву. Ключи сравниваются без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает массив сырых JSON-строк. Array(String)
Примеры
базовый
JSONExtractBool
Добавлена в версии: v20.1
Разбирает JSON и извлекает значение типа Bool.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает значение типа Bool, если оно существует, иначе возвращает 0. Bool
Примеры
Пример использования
JSONExtractBoolCaseInsensitive
Добавлена в версии: v25.8
Парсит JSON и извлекает логическое значение, используя регистронезависимый поиск по ключу. Эта функция аналогична JSONExtractBool.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— необязательный аргумент. Индексы или ключи для перехода к полю. Ключи сопоставляются без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает извлечённое логическое значение (1 для true, 0 для false), либо 0, если значение не найдено. UInt8
Примеры
Базовый пример
JSONExtractCaseInsensitive
Добавлена в: v25.8
Разбирает JSON и извлекает значение указанного типа данных ClickHouse, используя регистронезависимое сопоставление ключей. Эта функция аналогична JSONExtract.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к полю. Ключи сравниваются без учёта регистраStringили(U)Int*return_type— Тип данных ClickHouse, в котором нужно вернуть значениеString
Возвращаемое значение
Возвращает извлечённое значение в указанном типе данных. Any
Примеры
int_type
array_type
JSONExtractFloat
Появилась в версии: v20.1
Разбирает JSON и извлекает значение типа Float.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает значение типа Float, если оно найдено, в противном случае возвращает 0. Float64
Примеры
Пример использования
JSONExtractFloatCaseInsensitive
Впервые представлена в: v25.8
Разбирает JSON и извлекает значение типа Float, используя регистронезависимое сопоставление ключей. Эта функция аналогична JSONExtractFloat.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к полю. Ключи сопоставляются без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает извлеченное значение с плавающей запятой, 0 — если поле не найдено или значение не может быть преобразовано. Float64
Примеры
базовый пример
JSONExtractInt
Добавлено в версии: v20.1
Разбирает JSON и извлекает значение типа Int.
Синтаксис
Аргументы
json— JSON-строка для парсинга.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает значение типа Int, если оно существует, в противном случае возвращает 0. Int64
Примеры
Пример использования
JSONExtractIntCaseInsensitive
Добавлена в: v25.8
Разбирает JSON и извлекает значение типа Int, используя регистронезависимое сопоставление ключей. Эта функция аналогична JSONExtractInt.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к полю. Ключи сопоставляются без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает извлечённое значение типа Int, 0 — если значение не найдено или не может быть преобразовано. Int64
Примеры
Базовый пример
вложенный
JSONExtractKeys
Добавлена в версии: v21.11
Разбирает строку в формате JSON и извлекает ключи.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает массив с ключами JSON-объекта. Array(String)
Примеры
Пример использования
JSONExtractKeysAndValues
Появилось в версии: v20.1
Разбирает пары ключ-значение из JSON-документа, в котором значения имеют заданный тип данных ClickHouse.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*value_type— тип данных ClickHouse для значений.String
Возвращаемое значение
Возвращает массив кортежей с разобранными парами ключ–значение. Array(Tuple(String, value_type))
Примеры
Пример использования
JSONExtractKeysAndValuesCaseInsensitive
Добавлена в: v25.8
Извлекает пары ключ–значение из JSON с регистронезависимым сопоставлением ключей. Эта функция аналогична функции JSONExtractKeysAndValues.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к объекту. Ключи сопоставляются без учета регистраStringили(U)Int*value_type— тип данных ClickHouse для значенийString
Возвращаемое значение
Возвращает массив кортежей, содержащих пары ключ-значение. Array(Tuple(String, T))
Примеры
простой пример
JSONExtractKeysAndValuesRaw
Добавлена в версии: v20.4
Возвращает массив кортежей с ключами и значениями из объекта JSON. Все значения представлены в виде необработанных строк.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть либо строкой, либо целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает массив кортежей с разобранными парами ключ–значение, где значения представляют собой неразобранные строки. Array(Tuple(String, String))
Примеры
Пример использования
JSONExtractKeysAndValuesRawCaseInsensitive
Добавлена в версии: v25.8
Извлекает необработанные пары ключ-значение из JSON, сопоставляя ключи без учета регистра. Эта функция похожа на JSONExtractKeysAndValuesRaw.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к объекту. Ключи сопоставляются без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает массив кортежей, содержащих пары ключ-значение в виде исходных строк. Array(Tuple(String, String))
Примеры
простой пример
JSONExtractKeysCaseInsensitive
Добавлено в: v25.8
Разбирает строку JSON и извлекает ключи, используя регистронезависимое сравнение ключей для перехода к вложенным объектам. Эта функция аналогична JSONExtractKeys.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к объекту. Ключи сравниваются без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает массив ключей JSON-объекта. Array(String)
Примеры
базовый
вложенный
JSONExtractRaw
Добавлен в версии: v20.1
Возвращает часть JSON в виде строки без парсинга.
Синтаксис
Аргументы
json— JSON-строка для парсинга.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает фрагмент JSON в виде неразобранной строки. Если фрагмент не существует или имеет неверный тип, возвращается пустая строка. String
Примеры
Пример использования
JSONExtractRawCaseInsensitive
Добавлено в: v25.8
Возвращает часть JSON в виде необработанной строки, используя регистронезависимое сопоставление ключей. Эта функция аналогична JSONExtractRaw.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный аргумент. Индексы или ключи для перехода к полю. Сопоставление ключей выполняется без учета регистраStringили(U)Int*
Возвращаемое значение
Возвращает необработанную JSON-строку извлеченного элемента. String
Примеры
object
JSONExtractString
Добавлена в версии v20.1
Разбирает JSON и извлекает значение типа String.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает значение типа String, если оно существует, в противном случае возвращает пустую строку. String
Примеры
Пример использования
JSONExtractStringCaseInsensitive
Появилась в версии v25.8
Разбирает JSON и извлекает строку, используя регистронезависимое сопоставление ключей. Эта функция аналогична JSONExtractString.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— Необязательный параметр. Индексы или ключи для перехода к полю. Ключи сопоставляются без учёта регистраStringили(U)Int*
Возвращаемое значение
Возвращает извлечённое строковое значение, пустую строку, если значение не найдено. String
Примеры
Базовый пример
вложенный
JSONExtractUInt
Появился в версии: v20.1
Анализирует JSON и извлекает значение типа UInt.
Синтаксис
Аргументы
json— JSON-строка для разбора.Stringindices_or_keys— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int*
Возвращаемое значение
Возвращает значение типа UInt, если такое значение существует, в противном случае возвращает 0. UInt64
Примеры
Пример использования
JSONExtractUIntCaseInsensitive
Появилась в версии v25.8
Разбирает JSON и извлекает значение типа UInt, используя регистронезависимое сравнение ключей. Эта функция аналогична JSONExtractUInt.
Синтаксис
Аргументы
json— JSON-строка для разбораStringindices_or_keys— необязательный параметр. Индексы или ключи для перехода к полю. Ключи сопоставляются без учёта регистраStringили(U)Int*
Возвращаемое значение
Возвращает извлечённое значение типа UInt, 0 — если значение не найдено или не может быть преобразовано. UInt64
Примеры
Базовый пример
JSONHas
Появилось в версии: v20.1
Проверяет наличие указанного значения (значений) в JSON-документе.
Синтаксис
Аргументы
json— JSON-строка для разбораString[ ,indices_or_keys, ...]— список, содержащий ноль или более аргументов.Stringили(U)Int*
Возвращаемое значение
Возвращает 1, если значение присутствует в json, иначе 0 UInt8
Примеры
Пример использования
JSONLength
Добавлена в версии: v20.1
Возвращает длину JSON-массива или JSON-объекта.
Если значение не существует или имеет неверный тип, будет возвращено 0.
Синтаксис
Аргументы
json— JSON-строка для разбораString[, indices_or_keys, ...]— Необязательный список из нуля или более аргументов.Stringили(U)Int8/16/32/64
Возвращаемое значение
Возвращает длину JSON-массива или JSON-объекта, иначе возвращает 0, если значение не существует или имеет неподходящий тип. UInt64
Примеры
Пример использования
JSONMergePatch
Добавлено в версии: v23.10
Возвращает строку JSON-объекта, полученного слиянием нескольких JSON-объектов.
Синтаксис
Псевдонимы: jsonMergePatch
Аргументы
json1[, json2, ...]— Одна или несколько строк с валидным JSON.String
Возвращаемое значение
Возвращает строку объединённого JSON-объекта, если строки JSON-объектов валидны. String
Примеры
Пример использования
JSONSharedDataPaths
Введено в: v24.8
Возвращает список путей, которые хранятся в общей структуре данных JSON-столбца.
Синтаксис
Аргументы
json— столбец JSON.JSON
Возвращаемое значение
Возвращает массив путей, сохранённых в разделяемой структуре данных в столбце JSON. Array(String)
Примеры
Пример использования
JSONSharedDataPathsWithTypes
Появилось в: v24.8
Возвращает список путей, которые хранятся в общей структуре данных, и соответствующих типов для каждой строки в JSON-столбце.
Синтаксис
Аргументы
json— JSON-столбец.JSON
Возвращаемое значение
Возвращает отображение путей, хранящихся в разделяемой структуре данных, и их типов данных в JSON-столбце. Map(String, String)
Примеры
Пример использования
JSONType
Введена в версии: v20.1
Возвращает тип JSON-значения. Если значение отсутствует, будет возвращено Null=0.
Синтаксис
Аргументы
json— JSON-строка для разбораStringjson[, indices_or_keys, ...]— список из нуля или более аргументов, каждый из которых может быть строкой или целым числом.Stringили(U)Int8/16/32/64
Возвращаемое значение
Возвращает тип JSON-значения в виде строки, а если значение не существует — возвращает Null=0 Enum
Примеры
Пример использования
JSON_EXISTS
Появилась в версии v21.8.
Если значение существует в JSON-документе, будет возвращено 1.
Если значение не существует, будет возвращено 0.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает 1, если значение присутствует в JSON-документе, в противном случае — 0. UInt8
Примеры
Пример использования
JSON_QUERY
Появилось в: v21.8
Разбирает JSON и извлекает значение в виде JSON-массива или JSON-объекта. Если значение отсутствует, будет возвращена пустая строка.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает извлечённый JSON‑массив или JSON‑объект в виде строки, либо пустую строку, если значение отсутствует. String
Примеры
Пример использования
JSON_VALUE
Введена в версии: v21.11
Разбирает JSON и извлекает значение в виде скалярного значения JSON. Если значение отсутствует, по умолчанию будет возвращена пустая строка.
Поведение функции настраивается следующими параметрами:
- при SET
function_json_value_return_type_allow_nullable=trueбудет возвращёнNULL. Если значение имеет сложный тип (например, struct, array, map), по умолчанию будет возвращена пустая строка. - при SET
function_json_value_return_type_allow_complex=trueбудет возвращено сложное значение.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает извлечённый JSON‑скаляр как строку или пустую строку, если значение не существует. String
Примеры
Пример использования
dynamicElement
Впервые появился в: v24.1
Извлекает столбец с указанным типом из столбца Dynamic.
Эта функция позволяет извлекать значения определённого типа из столбца Dynamic. Если строка содержит значение
запрошенного типа, возвращается это значение. Если строка содержит значение другого типа или NULL, возвращается NULL
для скалярных типов или пустой массив для типов массивов.
Синтаксис
Аргументы
dynamic— динамический столбец, из которого выполняется извлечение.Dynamictype_name— имя варианта типа, который нужно извлечь (например, 'String', 'Int64', 'Array(Int64)').
Возвращаемое значение
Возвращает значения указанного типа из динамического столбца. Возвращает NULL для несовпадающих типов (или пустой массив для типов-массивов). Any
Примеры
Извлечение различных типов из динамического столбца
dynamicType
Появилась в версии v24.1
Возвращает имя варианта типа для каждой строки столбца Dynamic.
Для строк, содержащих NULL, функция возвращает 'None'. Для всех остальных строк она возвращает фактический тип данных,
хранящийся в этой строке столбца Dynamic (например, 'Int64', 'String', 'Array(Int64)').
Синтаксис
Аргументы
dynamic— столбец типа Dynamic для анализа.Dynamic
Возвращаемое значение
Возвращает имя типа значения, хранящегося в каждой строке, или «None» для значений NULL. String
Примеры
Анализ типов в столбце типа Dynamic
isDynamicElementInSharedData
Добавлена в версии v24.1
Возвращает true для строк в столбце типа Dynamic, которые хранятся в общем формате варианта (shared variant format), а не как отдельные подстолбцы.
Когда для столбца типа Dynamic задано ограничение max_types, значения, превышающие этот лимит, сохраняются в общем двоичном формате,
вместо того чтобы быть разделёнными на отдельные типизированные подстолбцы. Эта функция определяет, какие строки хранятся в этом общем формате.
Синтаксис
Аргументы
dynamic— динамический столбец для проверки.Dynamic
Возвращаемое значение
Возвращает true, если значение хранится в формате shared variant, и false, если оно хранится как отдельный подстолбец или равно NULL. Bool
Примеры
Проверка формата хранения в динамическом столбце с ограничением max_types
isValidJSON
Впервые появилась в версии: v20.1
Проверяет, что переданная строка является корректным JSON-документом.
Синтаксис
Аргументы
json— JSON-строка для проверкиString
Возвращаемое значение
Возвращает 1, если строка является корректным JSON, иначе 0. UInt8
Примеры
Пример использования
Использование целых чисел для доступа к JSON‑массивам и JSON‑объектам
simpleJSONExtractBool
Добавлено в: v21.4
Извлекает логическое значение true или false из значения поля с именем field_name.
Результат имеет тип UInt8.
Синтаксис
Псевдонимы: visitParamExtractBool
Аргументы
json— JSON, в котором выполняется поиск поля.Stringfield_name— имя поля, по которому выполняется поиск.const String
Возвращаемое значение
Возвращает 1, если значение поля равно true, иначе 0. Это означает, что функция вернёт 0 в том числе (но не только) в следующих случаях:
- Если поле не существует.
- Если поле содержит строковое значение
true, например:{"field":"true"}. - Если поле содержит
1как числовое значение.UInt8
Примеры
Пример использования
simpleJSONExtractFloat
Введена в версии: v21.4
Извлекает значение типа Float64 из значения поля с именем field_name.
Если field_name является строковым полем, функция пытается разобрать число с начала строки.
Если поле не существует или не содержит числа, возвращается 0.
Синтаксис
Псевдонимы: visitParamExtractFloat
Аргументы
json— объект JSON, в котором выполняется поиск поля.Stringfield_name— имя поля, которое нужно найти.const String
Возвращаемое значение
Возвращает число, извлечённое из значения поля, если поле существует и содержит число, иначе — 0. Float64
Примеры
Пример использования
simpleJSONExtractInt
Добавлена в версии v21.4
Извлекает значение типа Int64 из поля с именем field_name.
Если field_name — строковое поле, функция пытается распарсить число с начала строки.
Если поле отсутствует или не содержит числа, возвращается 0.
Синтаксис
Псевдонимы: visitParamExtractInt
Аргументы
json— JSON, в котором выполняется поиск поля.Stringfield_name— имя поля, которое нужно найти.const String
Возвращаемое значение
Возвращает число, извлечённое из поля, если поле существует и содержит число, в противном случае — 0. Int64
Примеры
Пример использования
simpleJSONExtractRaw
Появилась в версии: v21.4
Возвращает значение поля с именем field_name в виде строки (String), включая разделители.
Синтаксис
Псевдонимы: visitParamExtractRaw
Аргументы
json— JSON, в котором выполняется поиск поля.Stringfield_name— имя поля, которое нужно найти.const String
Возвращаемое значение
Возвращает значение поля в виде строки, включая разделители, если поле существует, или, в противном случае, пустую строку. String
Примеры
Пример использования
simpleJSONExtractString
Введена в версии: v21.4
Извлекает строку типа String, заключённую в двойные кавычки, из значения поля с именем field_name.
Подробности реализации
В настоящее время не поддерживаются кодовые точки Unicode в формате \uXXXX\uYYYY, которые не относятся к базовой многоязычной плоскости (они преобразуются в CESU-8 вместо UTF-8).
Синтаксис
Псевдонимы: visitParamExtractString
Аргументы
json— JSON, в котором выполняется поиск поля.Stringfield_name— имя поля, по которому выполняется поиск.const String
Возвращаемое значение
Возвращает значение поля со снятым экранированием в виде строки (включая разделители). Пустая строка возвращается, если поле не содержит строку в двойных кавычках, если снять экранирование не удалось или если поле не существует. String
Примеры
Пример использования
simpleJSONExtractUInt
Добавлена в версии: v21.4
Извлекает UInt64 из значения поля с именем field_name.
Если field_name — строковое поле, функция пытается разобрать число с начала строки.
Если поле не существует или существует, но не содержит числа, функция возвращает 0.
Синтаксис
Псевдонимы: visitParamExtractUInt
Аргументы
json— JSON, в котором выполняется поиск поля.Stringfield_name— имя поля, по которому выполняется поиск.const String
Возвращаемое значение
Возвращает число, извлечённое из поля, если поле существует и содержит число; в противном случае — 0. UInt64
Примеры
Пример использования
simpleJSONHas
Появилась в версии: v21.4
Проверяет, существует ли поле с именем field_name.
Синтаксис
Псевдонимы: visitParamHas
Аргументы
json— JSON, в котором выполняется поиск поля.Stringfield_name— имя поля для поиска.const String
Возвращаемое значение
Возвращает 1, если поле присутствует, и 0 в противном случае. UInt8
Примеры
Пример использования
toJSONString
Введена в версии v21.7
Сериализует значение в его представление в формате JSON. Поддерживаются различные типы данных и вложенные структуры.
64-битные целые числа и более разрядные (такие как UInt64 или Int128) по умолчанию заключаются в кавычки. Поведение контролируется настройкой output_format_json_quote_64bit_integers.
Специальные значения NaN и inf заменяются на null. Включите настройку output_format_json_quote_denormals, чтобы отображать эти значения.
При сериализации значения Enum функция выводит его имя.
См. также:
Синтаксис
Аргументы
value— значение для сериализации. Значение может быть любого типа данных.Any
Возвращаемое значение
Возвращает JSON-представление значения. String
Примеры
Сериализация Map
Специальные значения