Lorsque vous entrez votre requête dans l’éditeur SQL ou créez un calcul, vous utilisez la syntaxe Presto SQL. Pour ajuster les tableaux et les valeurs JSON (JavaScript Object Notation), ces fonctions courantes peuvent s'avérer utiles.
LONGUEUR DU TABLEAU JSON
Pour renvoyer le nombre de valeurs - ou la longueur - d'un tableau JSON, utilisez la fonction JSON_ARRAY_LENGTH, par exemple :
json_array_length(json) → bigint
Par exemple, SELECT json_array_length('[a, b, c]'); retourne une longueur de 3.
JSON_ARRAY_GET
Pour renvoyer une valeur d'un tableau JSON en fonction d'un index basé sur zéro, utilisez la fonction JSON_ARRAY_GET, par exemple :
json_array_get(json_array, index) → json
Par exemple :
-
SELECT json_array_get('["a", "b", "c"]', 0);retourne'a' -
SELECT json_array_get('["a", "b", "c"]', 1);retourne'b'
Pour renvoyer des valeurs indexées à partir de la fin du tableau, vous pouvez utiliser des index négatifs. Par exemple :
-
SELECT json_array_get('["c", "b", "a"]', -1);retourne'a' -
SELECT json_array_get('["c", "b", "a"]', -2);retourne'b'
Si aucun élément n'existe à l'index spécifié, la fonction renvoie null. Par exemple :
-
SELECT json_array_get('[]', 0);retournenull -
SELECT json_array_get('["a", "b", "c"]', 10);retournenull -
SELECT json_array_get('["c", "b", "a"]', -10);retournenull
JSON_EXTRACT
Pour évaluer l'expression de type JSONPath d'une chaîne contenant du JSON et renvoyer les résultats sous la forme d'une chaîne codée en JSON, utilisez la fonction JSON_EXTRACT, par exemple :
json_extract(json, json_path) → json
Par exemple :
SELECT json_extract(json, '$.store.book');
Note: pour retourner un résultat non encodé en tant que JSON, utilisez la fonction JSON_EXTRACT_SCALAR.
JSON_EXTRACT_SCALAR
Pour évaluer l'expression de type JSONPath d'une chaîne contenant du JSON et référençant une valeur scalaire - texte, booléen ou nombre - et renvoyer les résultats sous forme de chaîne, utilisez la fonction JSON_EXTRACT_SCALAR, par exemple :
json_extract_scalar(json, json_path) → varchar
Par exemple :
SELECT json_extract_scalar(json, '$.store.book[0].author');
SELECT json_extract_scalar('[1, 2, 3]', '$[2]'); Note: Pour retourner le résultat en tant que chaîne econdée en tant que JSON, utilisez la fonction JSON_EXTRACT.
JSON_FORMAT
Pour renvoyer les valeurs de la syntaxe JSON sous forme de chaîne, utilisez la fonction JSON_FORMAT, par exemple :
json_format(json) → varchar
Par exemple :
-
SELECT json_format(json '[1, 2, 3]');retourne'[1, 2, 3]' -
SELECT json_format(json '"a"');retourne'"a"'
Conseil : La fonction JSON_FORMAT est l'inverse de la fonction JSON_PARSE.
JSON_PARSE
Pour analyser une chaîne de caractères en syntaxe JSON, utilisez la fonction JSON_PARSE, par exemple :
json_parse(string) → json
Par exemple, SELECT json_parse('[1, 2, 3]'); retourne JSON '[1, 2, 3]'
Conseil : La fonction JSON_PARSE est l'inverse de la fonction JSON_FORMAT.
W_JSON_ARRAY_JOIN
Pour renvoyer les valeurs d'un tableau JSON sous la forme d'une chaîne de caractères délimitée, utilisez la fonction W_JSON_ARRAY_JOIN, par exemple :
w_json_array_join(array, 'delimiter') → varchar