Types de fonctions JSON
Il existe deux familles de fonctions pour analyser du JSON :simpleJSON*(visitParam*) qui sont conçues pour analyser très rapidement un sous-ensemble limité de JSON.JSONExtract*qui sont conçues pour analyser du JSON standard.
Fonctions simpleJSON (visitParam)
ClickHouse dispose de fonctions spéciales pour manipuler du JSON simplifié. Toutes ces fonctions JSON reposent sur des hypothèses strictes quant à la forme que peut prendre le JSON. Elles cherchent à en faire le moins possible afin d’exécuter l’opération aussi rapidement que possible. Les hypothèses suivantes sont faites :- Le nom du champ (argument de la fonction) doit être une constante.
- Le nom du champ est encodé sous une forme canonique dans le JSON. Par exemple :
simpleJSONHas('{"abc":"def"}', 'abc') = 1, maissimpleJSONHas('{"\\u0061\\u0062\\u0063":"def"}', 'abc') = 0 - Les champs sont recherchés à n’importe quel niveau d’imbrication, sans distinction. S’il existe plusieurs champs correspondants, la première occurrence est utilisée.
- Le JSON ne contient pas d’espaces en dehors des littéraux de chaîne.
Fonctions JSONExtract
Ces fonctions reposent sur simdjson et sont conçues pour répondre à des besoins plus complexes en matière d’analyse syntaxique du JSON.Fonctions JSONExtract insensibles à la casse
Ces fonctions effectuent une correspondance de clés ASCII insensible à la casse lors de l’extraction de valeurs depuis des objets JSON. Elles fonctionnent de manière identique à leurs équivalents sensibles à la casse, à ceci près que les clés des objets sont mises en correspondance sans tenir compte de la casse. Lorsque plusieurs clés correspondent avec des casses différentes, la première correspondance est renvoyée.Ces fonctions peuvent être moins performantes que leurs équivalents sensibles à la casse. Utilisez donc les fonctions JSONExtract standard si possible.
Syntaxe JSONPath
Les fonctionsJSON_EXISTS, JSON_VALUE et JSON_QUERY acceptent une expression
JSONPath comme deuxième argument. ClickHouse implémente un sous-ensemble limité de
JSONPath, librement inspiré de la norme SQL/JSON (ISO/IEC TR 19075-6),
et intentionnellement plus restreint que la RFC 9535
et d’autres implémentations populaires. Les opérateurs pris en charge sont répertoriés ci-dessous.
L’implémentation de référence se trouve dans
src/Functions/JSONPath/Parsers.
Opérateurs pris en charge
Remarques :
- Les index et les plages peuvent être combinés dans une même paire de crochets (par exemple,
[0 to 2, 4]). - Les plages d’index et le caractère générique ne peuvent pas être combinés dans une même paire de crochets (par exemple,
[* , 0]n’est pas valide). - Dans une plage
[n to m], le débutndoit être strictement inférieur à la finm, sinon une exception est levée. - Un index seul
[n]est équivalent à la plage[n to n+1].
Opérateurs non pris en charge
Les opérateurs JSONPath suivants, disponibles dans la RFC 9535 ou dans d’autres implémentations, ne sont pas pris en charge par ClickHouse :JSONAllPaths
Introduite dans : v24.8.0 Renvoie la liste de tous les chemins stockés dans chaque ligne d’une colonne JSON. Syntaxejson— colonne JSON.JSON
Array(String)
Exemples
Exemple d’utilisation
Query
Response
JSONAllPathsWithTypes
Introduit dans : v24.8.0 Renvoie la liste de tous les chemins et de leurs types de données présents dans chaque ligne d’une colonne JSON. Syntaxejson— colonne JSON.JSON
Map(String, String)
Exemples
Exemple d’utilisation
Query
Response
JSONAllValues
Introduit dans : v26.4.0 Renvoie toutes les valeurs de chaque ligne d’une colonne JSON sous forme de tableau de chaînes de caractères. Les valeurs sont sérialisées dans leur représentation textuelle et ordonnées selon leurs chemins d’accès. Syntaxejson— colonne JSON.JSON
Array(String)
Exemples
Exemple d’utilisation
Query
Response
JSONArrayLength
Introduit dans : v23.2.0 Renvoie le nombre d’éléments du tableau JSON de plus haut niveau. La fonction renvoieNULL si la chaîne JSON d’entrée n’est pas valide.
Syntaxe
JSON_ARRAY_LENGTH
Arguments
json— Chaîne contenant un JSON valide.String
json est une chaîne JSON représentant un tableau valide ; sinon, renvoie NULL. Nullable(UInt64)
Exemples
Exemple d’utilisation
Query
Response
JSONDynamicPaths
Introduit dans : v24.8.0 Renvoie la liste des chemins dynamiques stockés sous forme de sous-colonnes distinctes dans une colonne JSON. Syntaxejson— colonne JSON.JSON
Array(String)
Exemples
Exemple d’utilisation
Query
Response
JSONDynamicPathsWithTypes
Introduit dans : v24.8.0 Renvoie la liste des chemins dynamiques stockés sous forme de sous-colonnes distinctes, ainsi que leurs types, dans chaque ligne de la colonne JSON. Syntaxejson— colonne JSON.JSON
Map(String, String)
Exemples
Exemple d’utilisation
Query
Response
JSONExtract
Introduit dans : v19.14.0 Analyse du JSON et extrait une valeur du type de données ClickHouse spécifié. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Une liste de zéro, un ou plusieurs arguments, chacun pouvant être soit une chaîne, soit un entier.Stringou(U)Int*return_type— Type de données ClickHouse à renvoyer.String
Query
Response
JSONExtractArrayRaw
Introduit dans : v20.1.0 Renvoie un tableau dont chaque élément du tableau JSON est représenté sous forme de chaîne non analysée. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste de zéro, un ou plusieurs arguments, chacun pouvant être soit une chaîne, soit un entier.Stringou(U)Int*
Array(String)
Exemples
Exemple d’utilisation
Query
Response
JSONExtractArrayRawCaseInsensitive
Introduit dans : v25.8.0 Renvoie un tableau contenant les éléments d’un tableau JSON, chacun étant représenté sous forme de chaîne non analysée, avec une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractArrayRaw.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés pour accéder au tableau. Les clés ne tiennent pas compte de la casseStringou(U)Int*
Array(String)
Exemples
simple
Query
Response
JSONExtractBool
Introduit dans : v20.1.0 Analyse le JSON et extrait une valeur de type Bool. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste de zéro, un ou plusieurs arguments, chacun pouvant être une chaîne ou un entier.Stringou(U)Int*
0. Bool
Exemples
Exemple d’utilisation
Query
Response
JSONExtractBoolCaseInsensitive
Introduit dans : v25.8.0 Analyse du JSON et extrait une valeur booléenne en utilisant une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractBool.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés permettant d’accéder au champ. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*
UInt8
Exemples
basique
Query
Response
JSONExtractCaseInsensitive
Introduit dans : v25.8.0 Parse du JSON et extrait une valeur du type de données ClickHouse donné à l’aide d’une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtract.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés pour accéder au champ. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*return_type— Type de données ClickHouse à extraireString
Any
Exemples
int_type
Query
Response
Query
Response
JSONExtractFloat
Introduit dans : v20.1.0 Analyse le JSON et extrait une valeur de type Float. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Une liste de zéro ou plusieurs arguments, chacun pouvant être soit une chaîne, soit un entier.Stringou(U)Int*
0. Float64
Exemples
Exemple d’utilisation
Query
Response
JSONExtractFloatCaseInsensitive
Introduit dans : v25.8.0 Analyse du JSON et extraction d’une valeur de type Float à l’aide d’une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractFloat.
Syntaxe
json— chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés permettant d’accéder au champ. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*
Float64
Exemples
de base
Query
Response
JSONExtractInt
Introduit dans : v20.1.0 Analyse un JSON et en extrait une valeur de type Int. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste de zéro, un ou plusieurs arguments, chacun pouvant être une chaîne ou un entier.Stringou(U)Int*
0. Int64
Exemples
Exemple d’utilisation
Query
Response
JSONExtractIntCaseInsensitive
Introduite dans : v25.8.0 Analyse le JSON et en extrait une valeur de type Int avec une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractInt.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés permettant d’accéder au champ. Les clés ne tiennent pas compte de la casseStringou(U)Int*
Int64
Exemples
simple
Query
Response
Query
Response
JSONExtractKeys
Introduit dans : v21.11.0 Analyse une chaîne JSON et en extrait les clés. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste de zéro, un ou plusieurs arguments, chacun pouvant être une chaîne ou un entier.Stringou(U)Int*
Array(String)
Exemples
Exemple d’utilisation
Query
Response
JSONExtractKeysAndValues
Introduit dans : v20.1.0 Analyse des paires clé-valeur à partir d’un JSON dont les valeurs sont du type de données ClickHouse spécifié. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste de zéro, un ou plusieurs arguments, chacun pouvant être une chaîne ou un entier.Stringou(U)Int*value_type— Type de données ClickHouse des valeurs.String
Array(Tuple(String, value_type))
Exemples
Exemple d’utilisation
Query
Response
JSONExtractKeysAndValuesCaseInsensitive
Introduit dans : v25.8.0 Analyse des paires clé-valeur dans un JSON à l’aide d’une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractKeysAndValues.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés pour accéder à l’objet. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*value_type— Le type de données ClickHouse des valeursString
Array(Tuple(String, T))
Exemples
simple
Query
Response
JSONExtractKeysAndValuesRaw
Introduit dans : v20.4.0 Renvoie un tableau de tuples contenant les clés et les valeurs d’un objet JSON. Toutes les valeurs sont représentées sous forme de chaînes non analysées. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Une liste de zéro, un ou plusieurs arguments, chacun pouvant être soit une chaîne, soit un entier.Stringou(U)Int*
Array(Tuple(String, String))
Exemples
Exemple d’utilisation
Query
Response
JSONExtractKeysAndValuesRawCaseInsensitive
Introduit dans : v25.8.0 Extrait des paires clé-valeur brutes d’un JSON à l’aide d’une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractKeysAndValuesRaw.
Syntaxe
json— chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés pour naviguer jusqu’à l’objet. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*
Array(Tuple(String, String))
Exemples
de base
Query
Response
JSONExtractKeysCaseInsensitive
Introduit dans : v25.8.0 Analyse une chaîne JSON et en extrait les clés en utilisant une correspondance de clés insensible à la casse pour accéder à des objets imbriqués. Cette fonction est similaire àJSONExtractKeys.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés permettant d’accéder à l’objet. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*
Array(String)
Exemples
de base
Query
Response
Query
Response
JSONExtractRaw
Introduit dans : v20.1.0 Renvoie une partie du JSON sous forme de chaîne non analysée. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Une liste d’arguments, éventuellement vide, dont chacun peut être soit une chaîne, soit un entier.Stringou(U)Int*
String
Exemples
Exemple d’utilisation
Query
Response
JSONExtractRawCaseInsensitive
Introduite dans : v25.8.0 Renvoie une partie du JSON sous forme de chaîne non analysée, avec une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractRaw.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés permettant d’accéder au champ. Les clés sont mises en correspondance sans tenir compte de la casseStringou(U)Int*
String
Exemples
objet
Query
Response
JSONExtractString
Introduit dans : v20.1.0 Analyse du JSON et en extrait une valeur de type String. Syntaxejson— chaîne JSON à analyser.Stringindices_or_keys— Une liste de zéro, un ou plusieurs arguments, chacun pouvant être soit une chaîne, soit un entier.Stringou(U)Int*
String
Exemples
Exemple d’utilisation
Query
Response
JSONExtractStringCaseInsensitive
Introduit dans : v25.8.0 Analyse le JSON et extrait une chaîne de caractères à l’aide d’une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractString.
Syntaxe
json— Chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés permettant d’accéder au champ. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*
String
Exemples
de base
Query
Response
Query
Response
JSONExtractUInt
Introduit dans : v20.1.0 Analyse le JSON et en extrait une valeur de type UInt. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste de zéro, un ou plusieurs arguments, chacun pouvant être soit une chaîne, soit un entier.Stringou(U)Int*
0. UInt64
Exemples
Exemple d’utilisation
Query
Response
JSONExtractUIntCaseInsensitive
Introduit dans : v25.8.0 Analyse du JSON et extrait une valeur de type UInt en utilisant une correspondance de clés insensible à la casse. Cette fonction est similaire àJSONExtractUInt.
Syntaxe
json— chaîne JSON à analyserStringindices_or_keys— Facultatif. Indices ou clés pour accéder au champ. Les clés utilisent une correspondance insensible à la casseStringou(U)Int*
UInt64
Exemples
de base
Query
Response
JSONHas
Introduite dans : v20.1.0 Vérifie la présence de la ou des valeurs fournies dans le document JSON. Syntaxejson— Chaîne JSON à analyserString[ ,indices_or_keys, ...]— Une liste de zéro ou plusieurs arguments.Stringou(U)Int*
1 si la valeur existe dans json, sinon 0 UInt8
Exemples
Exemple d’utilisation
Query
Response
JSONKey
Introduit dans : v20.1.0 Renvoie la clé d’un champ d’un objet JSON en fonction de son index (à partir de 1). Si le JSON est transmis sous forme de chaîne, il est d’abord analysé. Le deuxième argument est un chemin JSON permettant de naviguer dans des objets imbriqués. La fonction renvoie le nom de la clé à la position indiquée. Syntaxejson— Chaîne JSON à analyser.Stringindices_or_keys— Liste facultative d’indices ou de clés spécifiant un chemin d’accès vers un élément imbriqué. Chaque argument peut être soit une chaîne (accès par clé), soit un entier (accès par indice à partir de 1).StringouInt*
String
Exemples
Exemple d’utilisation
Query
Response
JSONLength
Introduit dans : v20.1.0 Renvoie la longueur d’un tableau JSON ou d’un objet JSON. Si la valeur n’existe pas ou n’est pas du bon type,0 est renvoyé.
Syntaxe
json— Chaîne JSON à analyserString[, indices_or_keys, ...]— Facultatif. Liste de zéro argument ou plus.Stringou(U)Int8/16/32/64
0 si la valeur n’existe pas ou si elle est du mauvais type. UInt64
Exemples
Exemple d’utilisation
Query
Response
JSONMergePatch
Introduit dans : v23.10.0 Renvoie la chaîne représentant l’objet JSON fusionné, obtenue en fusionnant plusieurs objets JSON. SyntaxejsonMergePatch
Arguments
json1[, json2, ...]— Une ou plusieurs chaînes contenant du JSON valide.String
String
Exemples
Exemple d’utilisation
Query
Response
JSONSharedDataPaths
Introduit dans : v24.8.0 Renvoie la liste des chemins stockés dans la structure de données partagée d’une colonne JSON. Syntaxejson— colonne JSON.JSON
Array(String)
Exemples
Exemple d’utilisation
Query
Response
JSONSharedDataPathsWithTypes
Introduit dans : v24.8.0 Renvoie, pour chaque ligne de la colonne JSON, la liste des chemins stockés dans la structure de données partagées ainsi que leurs types. Syntaxejson— colonne JSON.JSON
Map(String, String)
Exemples
Exemple d’utilisation
Query
Response
JSONType
Introduit dans : v20.1.0 Renvoie le type d’une valeur JSON. Si la valeur n’existe pas,Null=0 est renvoyé.
Syntaxe
json— chaîne JSON à analyserStringjson[, indices_or_keys, ...]— Liste de zéro argument ou plus, chacun pouvant être une chaîne ou un entier.Stringou(U)Int8/16/32/64
Null=0 Enum
Exemples
Exemple d’utilisation
Query
Response
JSON_EXISTS
Introduit dans : v21.8.0 Si la valeur existe dans le document JSON,1 est renvoyé.
Si la valeur n’existe pas, 0 est renvoyé.
Syntaxe
1 si la valeur existe dans le document JSON, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
JSON_QUERY
Introduit dans : v21.8.0 Analyse un JSON et en extrait une valeur sous la forme d’un tableau JSON ou d’un objet JSON. Si la valeur n’existe pas, une chaîne vide est renvoyée. SyntaxeString
Exemples
Exemple d’utilisation
Query
Response
JSON_VALUE
Introduit dans : v21.11.0 Analyse un JSON et en extrait une valeur sous forme de scalaire JSON. Si la valeur n’existe pas, une chaîne vide est renvoyée par défaut. Le comportement de cette fonction est contrôlé par les paramètres suivants :- avec SET
function_json_value_return_type_allow_nullable=true,NULLest renvoyé. Si la valeur est d’un type complexe (comme : struct, array, map), une chaîne vide est renvoyée par défaut. - avec SET
function_json_value_return_type_allow_complex=true, la valeur complexe est renvoyée.
String
Exemples
Exemple d’utilisation
Query
Response
dynamicElement
Introduit dans : v24.1.0 Extrait une colonne du type spécifié depuis une colonneDynamic.
Cette fonction permet d’extraire des valeurs d’un type spécifique depuis une colonne Dynamic. Si une ligne contient une valeur
du type demandé, elle renvoie cette valeur. Si la ligne contient une valeur d’un autre type ou NULL, elle renvoie NULL
pour les types scalaires ou un tableau vide pour les types Array.
Syntaxe
dynamic— Colonne Dynamic à partir de laquelle effectuer l’extraction.Dynamictype_name— Nom du type de variante à extraire (par ex., ‘String’, ‘Int64’, ‘Array(Int64)’).
Any
Exemples
Extraction de différents types à partir d’une colonne Dynamic
Query
Response
dynamicType
Introduit dans : v24.1.0 Renvoie le nom du type de variante pour chaque ligne d’une colonneDynamic.
Pour les lignes contenant NULL, la fonction renvoie ‘None’. Pour toutes les autres lignes, elle renvoie le type de données réel
stocké dans la ligne correspondante de la colonne Dynamic (par ex., ‘Int64’, ‘String’, ‘Array(Int64)’).
Syntaxe
dynamic— colonne Dynamic à examiner.Dynamic
String
Exemples
Vérification des types dans une colonne Dynamic
Query
Response
isDynamicElementInSharedData
Introduit dans : v24.1.0 Renvoie true pour les lignes d’une colonne Dynamic qui sont stockées au format de variante partagé plutôt que dans des sous-colonnes distinctes. Lorsqu’une colonne Dynamic a une limitemax_types, les valeurs qui dépassent cette limite sont stockées dans un format binaire partagé
au lieu d’être séparées dans des sous-colonnes typées individuelles. Cette fonction permet d’identifier les lignes stockées dans ce format partagé.
Syntaxe
dynamic— colonne Dynamic à inspecter.Dynamic
Bool
Exemples
Vérification du format de stockage d’une colonne Dynamic avec la limite max_types
Query
Response
isValidJSON
Introduit dans : v20.1.0 Vérifie que la chaîne passée en argument est un JSON valide. Syntaxejson— chaîne JSON à validerString
1 si la chaîne est un JSON valide, sinon 0. UInt8
Exemples
Exemple d’utilisation
Query
Response
Query
Response
prettyPrintJSON
Introduit dans : v26.4.0 Renvoie une version mise en forme d’une chaîne JSON, avec des sauts de ligne et une indentation par espaces. Syntaxejson— Une chaîne JSON valide à mettre en forme.Stringindent— Nombre d’espaces par niveau d’indentation. Par défaut : 4. Max : 32UInt*
String
Exemples
Objet simple
Query
Response
Query
Response
simpleJSONExtractBool
Introduit dans : v21.4.0 Analyse la valeur true/false du champ nomméfield_name.
Le résultat est UInt8.
Syntaxe
visitParamExtractBool
Arguments
json— Le JSON dans lequel rechercher le champ.Stringfield_name— Le nom du champ à rechercher.const String
1 si la valeur du champ est true, 0 sinon. Cela signifie que cette fonction renvoie 0, notamment (et pas uniquement) dans les cas suivants :
- Si le champ n’existe pas.
- Si le champ contient
truesous forme de chaîne, par exemple :{"field":"true"}. - Si le champ contient
1comme valeur numérique.UInt8
Query
Response
simpleJSONExtractFloat
Introduit dans : v21.4.0 Extrait unFloat64 de la valeur du champ nommé field_name.
Si field_name est un champ de type chaîne, la fonction essaie d’analyser un nombre à partir du début de la chaîne.
Si le champ n’existe pas, ou s’il existe mais ne contient pas de nombre, la fonction renvoie 0.
Syntaxe
visitParamExtractFloat
Arguments
json— Le JSON dans lequel le champ est recherché.Stringfield_name— Le nom du champ à rechercher.const String
0. Float64
Exemples
Exemple d’utilisation
Query
Response
simpleJSONExtractInt
Introduit dans : v21.4.0 Extrait unInt64 à partir de la valeur du champ nommé field_name.
Si field_name est un champ de type chaîne, la fonction tente d’analyser un nombre au début de la chaîne.
Si le champ n’existe pas, ou s’il existe mais ne contient pas de nombre, la fonction renvoie 0.
Syntaxe
visitParamExtractInt
Arguments
json— Le JSON dans lequel le champ est recherché.Stringfield_name— Le nom du champ à rechercher.const String
0 sinon Int64
Exemples
Exemple d’utilisation
Query
Response
simpleJSONExtractRaw
Introduit dans : v21.4.0 Renvoie la valeur du champfield_name sous forme de String, y compris les séparateurs.
Syntaxe
visitParamExtractRaw
Arguments
json— Le JSON dans lequel le champ est recherché.Stringfield_name— Le nom du champ à rechercher.const String
String
Exemples
Exemple d’utilisation
Query
Response
simpleJSONExtractString
Introduit dans : v21.4.0 Analyse uneString entre guillemets doubles à partir de la valeur du champ nommé field_name.
Détails d’implémentation
Actuellement, les points de code au format \uXXXX\uYYYY qui ne relèvent pas du plan multilingue de base ne sont pas pris en charge (ils sont convertis en CESU-8 au lieu d’UTF-8).
Syntaxe
visitParamExtractString
Arguments
json— Le JSON dans lequel rechercher le champ.Stringfield_name— Le nom du champ à rechercher.const String
String
Exemples
Exemple d’utilisation
Query
Response
simpleJSONExtractUInt
Introduit dans : v21.4.0 Extrait unUInt64 de la valeur du champ nommé field_name.
Si field_name est un champ de type chaîne de caractères, la fonction essaie d’analyser un nombre au début de la chaîne.
Si le champ n’existe pas, ou s’il existe mais ne contient pas de nombre, elle renvoie 0.
Syntaxe
visitParamExtractUInt
Arguments
json— Le JSON dans lequel le champ est recherché.Stringfield_name— Le nom du champ à rechercher.const String
0 sinon UInt64
Exemples
Exemple d’utilisation
Query
Response
simpleJSONHas
Introduit dans : v21.4.0 Vérifie la présence d’un champ nomméfield_name.
Syntaxe
visitParamHas
Arguments
json— Le JSON dans lequel rechercher le champ.Stringfield_name— Le nom du champ à rechercher.const String
1 si le champ existe, 0 sinon UInt8
Exemples
Exemple d’utilisation
Query
Response
toJSONString
Introduit dans : v21.7.0 Sérialise une valeur dans sa représentation JSON. Divers types de données et structures imbriquées sont pris en charge. Les entiers 64 bits ou plus (commeUInt64 ou Int128) sont renvoyés sans guillemets par défaut. output_format_json_quote_64bit_integers contrôle ce comportement.
Les valeurs spéciales NaN et inf sont remplacées par null. Activez le paramètre output_format_json_quote_denormals pour les afficher.
Lors de la sérialisation d’une valeur Enum, la fonction renvoie son nom.
Voir aussi :
Syntaxe
value— Valeur à sérialiser. La valeur peut être de n’importe quel type de données.Any
String
Exemples
Sérialisation d’une Map
Query
Response
Query
Response