Tipos de funciones JSON
Hay dos conjuntos de funciones para parsear JSON:simpleJSON*(visitParam*), diseñadas para parsear un subconjunto limitado de JSON con gran rapidez.JSONExtract*, diseñadas para parsear JSON normal.
funciones simpleJSON (visitParam)
ClickHouse tiene funciones especiales para trabajar con JSON simplificado. Todas estas funciones JSON se basan en suposiciones estrictas sobre cómo puede ser el JSON. Intentan hacer lo mínimo indispensable para realizar la tarea lo más rápido posible. Se hacen las siguientes suposiciones:- El nombre del campo (argumento de la función) debe ser una constante.
- El nombre del campo está codificado de forma canónica en JSON. Por ejemplo:
simpleJSONHas('{"abc":"def"}', 'abc') = 1, perosimpleJSONHas('{"\\u0061\\u0062\\u0063":"def"}', 'abc') = 0 - Los campos se buscan en cualquier nivel de anidamiento, sin distinción. Si hay varios campos coincidentes, se usa la primera aparición.
- El JSON no tiene caracteres de espacio fuera de los literales de cadena.
Funciones JSONExtract
Estas funciones se basan en simdjson y están diseñadas para casos de análisis de JSON más complejos.Funciones JSONExtract sin distinción entre mayúsculas y minúsculas
Estas funciones realizan coincidencia de claves ASCII sin distinción entre mayúsculas y minúsculas al extraer valores de objetos JSON. Funcionan de forma idéntica a sus equivalentes sensibles a mayúsculas y minúsculas, salvo que las claves del objeto se comparan sin tener en cuenta las mayúsculas y minúsculas. Cuando varias claves coinciden con distintas combinaciones de mayúsculas y minúsculas, se devuelve la primera coincidencia.Estas funciones pueden tener un rendimiento inferior al de sus equivalentes sensibles a mayúsculas y minúsculas, así que use las funciones JSONExtract habituales siempre que sea posible.
Sintaxis de JSONPath
Las funcionesJSON_EXISTS, JSON_VALUE y JSON_QUERY aceptan una expresión
JSONPath como segundo argumento. ClickHouse implementa un subconjunto limitado de
JSONPath basado de forma general en el estándar SQL/JSON (ISO/IEC TR 19075-6),
y deliberadamente más limitado que RFC 9535
y otras implementaciones populares. A continuación se enumeran los operadores compatibles.
La implementación de referencia se encuentra en
src/Functions/JSONPath/Parsers.
Operadores compatibles
Notas:
- Los índices y rangos se pueden combinar dentro del mismo par de corchetes (por ejemplo,
[0 to 2, 4]). - Los rangos de índices y el comodín no se pueden combinar dentro del mismo par de corchetes (por ejemplo,
[* , 0]no es válido). - En un rango
[n to m], el iniciondebe ser estrictamente menor que el finalm; de lo contrario, se genera una excepción. - Un índice sin especificar un rango
[n]es equivalente al rango[n to n+1].
Operadores no compatibles
Los siguientes operadores JSONPath, disponibles en RFC 9535 u otras implementaciones, no son compatibles con ClickHouse:JSONAllPaths
Introducido en: v24.8.0 Devuelve la lista de todas las rutas almacenadas en cada fila de una columna JSON. Sintaxisjson— columna JSON.JSON
Array(String)
Ejemplos
Ejemplo de uso
Query
Response
JSONAllPathsWithTypes
Introducido en: v24.8.0 Devuelve la lista de todas las rutas y los tipos de datos almacenados en cada fila de una columna JSON. Sintaxisjson— columna JSON.JSON
Map(String, String)
Ejemplos
Ejemplo de uso
Query
Response
JSONAllValues
Introducido en: v26.4.0 Devuelve todos los valores de cada fila de una columna JSON como un array de cadenas. Los valores se serializan en su representación textual y se ordenan por sus nombres de ruta. Sintaxisjson— columna JSON.JSON
Array(String)
Ejemplos
Ejemplo de uso
Query
Response
JSONArrayLength
Introducido en: v23.2.0 Devuelve el número de elementos de la matriz JSON de nivel superior. La función devuelveNULL si la cadena JSON de entrada no es válida.
Sintaxis
JSON_ARRAY_LENGTH
Argumentos
json— String con JSON válido.String
json es una cadena JSON válida que contiene un array; de lo contrario, devuelve NULL. Nullable(UInt64)
Ejemplos
Ejemplo de uso
Query
Response
JSONDynamicPaths
Introducido en: v24.8.0 Devuelve la lista de rutas dinámicas almacenadas como subcolumnas independientes en la columna JSON. Sintaxisjson— columna JSON.JSON
Array(String)
Ejemplos
Ejemplo de uso
Query
Response
JSONDynamicPathsWithTypes
Introducido en: v24.8.0 Devuelve la lista de rutas dinámicas almacenadas como subcolumnas independientes y sus tipos en cada fila de la columna JSON. Sintaxisjson— columna JSON.JSON
Map(String, String)
Ejemplos
Ejemplo de uso
Query
Response
JSONExtract
Introducido en: v19.14.0 Analiza JSON y extrae un valor del tipo de dato de ClickHouse especificado. Sintaxisjson— Cadena JSON para analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*return_type— Tipo de dato de ClickHouse que se va a devolver.String
Query
Response
JSONExtractArrayRaw
Introducido en: v20.1.0 Devuelve un array con los elementos de un array JSON, cada uno representado como una cadena sin analizar. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
Array(String)
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractArrayRawCaseInsensitive
Introducido en: v25.8.0 Devuelve un array con los elementos de un array JSON, cada uno representado como una cadena sin analizar, mediante coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtractArrayRaw.
Sintaxis
json— Cadena JSON que se va a analizarStringindices_or_keys— Opcional. Índices o claves para desplazarse por el array. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*
Array(String)
Ejemplos
básico
Query
Response
JSONExtractBool
Introducido en: v20.1.0 Analiza JSON y extrae un valor de tipo Bool. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
0. Bool
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractBoolCaseInsensitive
Introducido en: v25.8.0 Analiza JSON y extrae un valor booleano mediante coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtractBool.
Sintaxis
json— Cadena JSON para analizarStringindices_or_keys— Opcional. Índices o claves para llegar al campo. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*
UInt8
Ejemplos
básico
Query
Response
JSONExtractCaseInsensitive
Introducido en: v25.8.0 Analiza JSON y extrae un valor del tipo de dato de ClickHouse especificado mediante coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtract.
Sintaxis
json— Cadena JSON que se va a analizarStringindices_or_keys— Opcional. Índices o claves para navegar hasta el campo. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*return_type— El tipo de dato de ClickHouse que se va a extraerString
Any
Ejemplos
int_type
Query
Response
Query
Response
JSONExtractFloat
Introducido en: v20.1.0 Analiza JSON y extrae un valor de tipo Float. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
0. Float64
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractFloatCaseInsensitive
Introducido en: v25.8.0 Analiza JSON y extrae un valor de tipo Float mediante una coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtractFloat.
Sintaxis
json— Cadena JSON para analizarStringindices_or_keys— Opcional. Índices o claves para llegar al campo. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*
Float64
Ejemplos
básico
Query
Response
JSONExtractInt
Introducido en: v20.1.0 Analiza JSON y extrae un valor de tipo Int. Sintaxisjson— Cadena JSON que se debe analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
0. Int64
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractIntCaseInsensitive
Introducido en: v25.8.0 Analiza JSON y extrae un valor de tipo Int mediante coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtractInt.
Sintaxis
json— Cadena JSON para analizarStringindices_or_keys— Opcional. Índices o claves para llegar al campo. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*
Int64
Ejemplos
básico
Query
Response
Query
Response
JSONExtractKeys
Introducido en: v21.11.0 Analiza una cadena JSON y extrae las claves. Sintaxisjson— Cadena JSON para analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
Array(String)
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractKeysAndValues
Introducido en: v20.1.0 Analiza pares clave-valor de un JSON cuyos valores son del tipo de dato de ClickHouse especificado. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*value_type— Tipo de dato de ClickHouse de los valores.String
Array(Tuple(String, value_type))
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractKeysAndValuesCaseInsensitive
Introducido en: v25.8.0 Analiza pares clave-valor de JSON con coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtractKeysAndValues.
Sintaxis
json— Cadena JSON que se va a analizarStringindices_or_keys— Opcional. Índices o claves para acceder al objeto. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*value_type— El tipo de dato de ClickHouse de los valoresString
Array(Tuple(String, T))
Ejemplos
básico
Query
Response
JSONExtractKeysAndValuesRaw
Introducido en: v20.4.0 Devuelve un array de tuplas con claves y valores de un objeto JSON. Todos los valores se representan como cadenas sin analizar. Sintaxisjson— Cadena JSON para analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
Array(Tuple(String, String))
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractKeysAndValuesRawCaseInsensitive
Introducido en: v25.8.0 Extrae pares clave-valor sin procesar de JSON mediante coincidencia de claves sin distinguir entre mayúsculas y minúsculas. Esta función es similar aJSONExtractKeysAndValuesRaw.
Sintaxis
json— cadena JSON para analizarStringindices_or_keys— Opcional. Índices o claves para navegar por el objeto. Las claves usan coincidencia sin distinción entre mayúsculas y minúsculasStringo(U)Int*
Array(Tuple(String, String))
Ejemplos
básico
Query
Response
JSONExtractKeysCaseInsensitive
Introducido en: v25.8.0 Analiza una cadena JSON y extrae las claves usando coincidencia de claves sin distinción entre mayúsculas y minúsculas para acceder a objetos anidados. Esta función es similar aJSONExtractKeys.
Sintaxis
json— Cadena JSON para analizarStringindices_or_keys— Opcional. Índices o claves para navegar hasta el objeto. Las claves se comparan sin distinguir entre mayúsculas y minúsculasStringo(U)Int*
Array(String)
Ejemplos
básico
Query
Response
Query
Response
JSONExtractRaw
Introducido en: v20.1.0 Devuelve una parte del JSON como una cadena sin analizar. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
String
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractRawCaseInsensitive
Introducido en: v25.8.0 Devuelve una parte del JSON como una cadena sin analizar utilizando coincidencia de claves sin distinción entre mayúsculas y minúsculas. Esta función es similar aJSONExtractRaw.
Sintaxis
json— Cadena JSON que se va a analizarStringindices_or_keys— Opcional. Índices o claves para navegar hasta el campo. Las claves usan una coincidencia sin distinguir mayúsculas de minúsculasStringo(U)Int*
String
Ejemplos
objeto
Query
Response
JSONExtractString
Introducido en: v20.1.0 Analiza JSON y extrae un valor de tipo String. Sintaxisjson— Cadena JSON para analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
String
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractStringCaseInsensitive
Introducido en: v25.8.0 Analiza JSON y extrae una cadena mediante coincidencia de claves sin distinguir entre mayúsculas y minúsculas. Esta función es similar aJSONExtractString.
Sintaxis
json— Cadena JSON que se va a analizarStringindices_or_keys— Opcional. Índices o claves para navegar hasta el campo. Las claves usan coincidencia sin distinguir entre mayúsculas y minúsculasStringo(U)Int*
String
Ejemplos
básico
Query
Response
Query
Response
JSONExtractUInt
Introducido en: v20.1.0 Analiza JSON y extrae un valor de tipo UInt. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int*
0. UInt64
Ejemplos
Ejemplo de uso
Query
Response
JSONExtractUIntCaseInsensitive
Introducido en: v25.8.0 Analiza JSON y extrae un valor de tipo UInt mediante coincidencia de claves sin distinguir entre mayúsculas y minúsculas. Esta función es similar aJSONExtractUInt.
Sintaxis
json— Cadena JSON para analizarStringindices_or_keys— Opcional. Índices o claves para navegar hasta el campo. Las claves usan coincidencia sin distinguir entre mayúsculas y minúsculasStringo(U)Int*
UInt64
Ejemplos
básico
Query
Response
JSONHas
Introducido en: v20.1.0 Comprueba si existen los valores proporcionados en el documento JSON. Sintaxisjson— Cadena JSON que se va a analizarString[ ,indices_or_keys, ...]— Una lista de cero o más argumentos.Stringo(U)Int*
1 si el valor existe en json; en caso contrario, 0 UInt8
Ejemplos
Ejemplo de uso
Query
Response
JSONKey
Introducido en: v20.1.0 Devuelve la clave de un campo de un objeto JSON según su índice (a partir de 1). Si el JSON se pasa como una cadena, primero se parsea. El segundo argumento es una ruta JSON para navegar por objetos anidados. La función devuelve el nombre de la clave en la posición especificada. Sintaxisjson— Cadena JSON que se va a analizar.Stringindices_or_keys— Lista opcional de índices o claves que especifican una ruta hacia un elemento anidado. Cada argumento puede ser una cadena (acceso por clave) o un entero (acceso por índice a partir de 1).StringoInt*
String
Ejemplos
Ejemplo de uso
Query
Response
JSONLength
Introducido en: v20.1.0 Devuelve la longitud de un array JSON o de un objeto JSON. Si el valor no existe o no es del tipo correcto, se devolverá0.
Sintaxis
json— Cadena JSON para analizarString[, indices_or_keys, ...]— Opcional. Una lista de cero o más argumentos.Stringo(U)Int8/16/32/64
0 si el valor no existe o es de un tipo incorrecto. UInt64
Ejemplos
Ejemplo de uso
Query
Response
JSONMergePatch
Introducido en: v23.10.0 Devuelve la cadena del objeto JSON resultante de fusionar varios objetos JSON. SintaxisjsonMergePatch
Argumentos
json1[, json2, ...]— Una o más cadenas con JSON válido.String
String
Ejemplos
Ejemplo de uso
Query
Response
JSONSharedDataPaths
Introducido en: v24.8.0 Devuelve la lista de rutas almacenadas en la estructura de datos compartida de la columna JSON. Sintaxisjson— columna JSON.JSON
Array(String)
Ejemplos
Ejemplo de uso
Query
Response
JSONSharedDataPathsWithTypes
Introducido en: v24.8.0 Devuelve la lista de rutas almacenadas en la estructura de datos compartida y sus tipos en cada fila de la columna JSON. Sintaxisjson— columna JSON.JSON
Map(String, String)
Ejemplos
Ejemplo de uso
Query
Response
JSONType
Introducido en: v20.1.0 Devuelve el tipo de un valor JSON. Si el valor no existe, se devuelveNull=0.
Sintaxis
json— cadena JSON que se va a analizarStringjson[, indices_or_keys, ...]— Una lista de cero o más argumentos, cada uno de los cuales puede ser una cadena o un entero.Stringo(U)Int8/16/32/64
Null=0 Enum
Ejemplos
Ejemplo de uso
Query
Response
JSON_EXISTS
Introducido en: v21.8.0 Si el valor existe en el documento JSON, se devuelve1.
Si el valor no existe, se devuelve 0.
Sintaxis
1 si el valor existe en el documento JSON; en caso contrario, 0. UInt8
Ejemplos
Ejemplo de uso
Query
Response
JSON_QUERY
Introducido en: v21.8.0 Analiza un JSON y extrae un valor como un array JSON o un objeto JSON. Si el valor no existe, se devolverá una cadena vacía. SintaxisString
Ejemplos
Ejemplo de uso
Query
Response
JSON_VALUE
Introducido en: v21.11.0 Analiza un JSON y extrae un valor como escalar JSON. Si el valor no existe, de forma predeterminada se devolverá una cadena vacía. Esta función se controla con los siguientes ajustes:- con SET
function_json_value_return_type_allow_nullable=true, se devolveráNULL. Si el valor es de tipo complejo (como: struct, array, map), de forma predeterminada se devolverá una cadena vacía. - con SET
function_json_value_return_type_allow_complex=true, se devolverá el valor complejo.
String
Ejemplos
Ejemplo de uso
Query
Response
dynamicElement
Introducido en: v24.1.0 Extrae una columna del tipo especificado a partir de una columnaDynamic.
Esta función permite extraer valores de un tipo específico de una columna Dynamic. Si una fila contiene un valor
del tipo solicitado, devuelve ese valor. Si la fila contiene un tipo distinto o NULL, devuelve NULL
para los tipos escalares o un array vacío para los tipos Array.
Sintaxis
dynamic— Columna Dynamic de la que extraer.Dynamictype_name— Nombre del tipo variante que se va a extraer (p. ej., ‘String’, ‘Int64’, ‘Array(Int64)’).
Any
Ejemplos
Extracción de distintos tipos de una columna Dynamic
Query
Response
dynamicType
Introducido en: v24.1.0 Devuelve el nombre del tipo variante para cada fila de una columnaDynamic.
Para las filas que contienen NULL, la función devuelve ‘None’. Para todas las demás filas, devuelve el nombre del tipo de datos real
almacenado en esa fila de la columna Dynamic (p. ej., ‘Int64’, ‘String’, ‘Array(Int64)’).
Sintaxis
dynamic— columna Dynamic que se desea inspeccionar.Dynamic
String
Ejemplos
Inspección de tipos en una columna Dynamic
Query
Response
isDynamicElementInSharedData
Introducido en: v24.1.0 Devuelve true para las filas de una columna Dynamic que se almacenan en formato Variant compartido, en lugar de como subcolumnas separadas. Cuando una columna Dynamic tiene un límite demax_types, los valores que superan ese límite se almacenan en un formato binario compartido
en lugar de separarse en subcolumnas tipadas individuales. Esta función identifica qué filas se almacenan en ese formato compartido.
Sintaxis
dynamic— columna Dynamic que se va a inspeccionar.Dynamic
Bool
Ejemplos
Comprobación del formato de almacenamiento en una columna Dynamic con el límite max_types
Query
Response
isValidJSON
Introducido en: v20.1.0 Comprueba que la cadena proporcionada sea un JSON válido. Sintaxisjson— Cadena JSON que se debe validarString
1 si la cadena es un JSON válido; en caso contrario, 0. UInt8
Ejemplos
Ejemplo de uso
Query
Response
Query
Response
prettyPrintJSON
Introducido en: v26.4.0 Devuelve una versión con formato legible de una cadena JSON, con saltos de línea y sangría con espacios. Sintaxisjson— Una cadena JSON válida a la que dar formato.Stringindent— Número de espacios por nivel de sangría. Predeterminado: 4. Máx.: 32UInt*
String
Ejemplos
Objeto simple
Query
Response
Query
Response
simpleJSONExtractBool
Introducido en: v21.4.0 Analiza un valortrue/false a partir del valor del campo llamado field_name.
El resultado es UInt8.
Sintaxis
visitParamExtractBool
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se busca.const String
1 si el valor del campo es true; 0 en caso contrario. Esto significa que esta función también devolverá 0 (y no solo) en los siguientes casos:
- Si el campo no existe.
- Si el campo contiene
truecomo cadena, por ejemplo:{"field":"true"}. - Si el campo contiene
1como valor numérico.UInt8
Query
Response
simpleJSONExtractFloat
Introducido en: v21.4.0 Analiza unFloat64 a partir del valor del campo llamado field_name.
Si field_name es un campo de cadena, intenta analizar un número desde el inicio de la cadena.
Si el campo no existe, o existe pero no contiene un número, devuelve 0.
Sintaxis
visitParamExtractFloat
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se busca.const String
0. Float64
Ejemplos
Ejemplo de uso
Query
Response
simpleJSONExtractInt
Introducido en: v21.4.0 Extrae unInt64 del valor del campo llamado field_name.
Si field_name es un campo de tipo cadena, intenta analizar un número desde el comienzo de la cadena.
Si el campo no existe, o existe pero no contiene un número, devuelve 0.
Sintaxis
visitParamExtractInt
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se debe buscar.const String
0 Int64
Ejemplos
Ejemplo de uso
Query
Response
simpleJSONExtractRaw
Introducido en: v21.4.0 Devuelve el valor del campofield_name como un String, incluidos los separadores.
Sintaxis
visitParamExtractRaw
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se debe buscar.const String
String
Ejemplos
Ejemplo de uso
Query
Response
simpleJSONExtractString
Introducido en: v21.4.0 Extrae unString entre comillas dobles del valor del campo llamado field_name.
Detalles de implementación
Actualmente no hay compatibilidad con puntos de código en el formato \uXXXX\uYYYY que no pertenezcan al plano multilingüe básico (se convierten a CESU-8 en lugar de UTF-8).
Sintaxis
visitParamExtractString
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se busca.const String
String
Ejemplos
Ejemplo de uso
Query
Response
simpleJSONExtractUInt
Introducido en: v21.4.0 Extrae unUInt64 del valor del campo llamado field_name.
Si field_name es un campo de tipo cadena, intenta analizar un número desde el inicio de la cadena.
Si el campo no existe, o existe pero no contiene un número, devuelve 0.
Sintaxis
visitParamExtractUInt
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se debe buscar.const String
0 UInt64
Ejemplos
Ejemplo de uso
Query
Response
simpleJSONHas
Introducido en: v21.4.0 Comprueba si existe un campo llamadofield_name.
Sintaxis
visitParamHas
Argumentos
json— El JSON en el que se busca el campo.Stringfield_name— El nombre del campo que se busca.const String
1 si el campo existe y 0 en caso contrario UInt8
Ejemplos
Ejemplo de uso
Query
Response
toJSONString
Introducido en: v21.7.0 Serializa un valor en su representación JSON. Se admiten varios tipos de datos y estructuras anidadas. Los enteros de 64 bits o superiores (comoUInt64 o Int128) se generan sin comillas de forma predeterminada. output_format_json_quote_64bit_integers controla este comportamiento.
Los valores especiales NaN e inf se sustituyen por null. Active la configuración output_format_json_quote_denormals para mostrarlos.
Al serializar un valor Enum, la función genera su nombre.
Véase también:
Sintaxis
value— Valor que se va a serializar. El valor puede ser de cualquier tipo de dato.Any
String
Ejemplos
Serialización de Map
Query
Response
Query
Response