JSON_EXTRACT_SCALAR |
Extraire le scalaire JSON |
| BigQuery |
Syntaxe
|
JSON_EXTRACT_SCALAR(json_string_expr, json_path_string_literal)
|
Paramètres
| Nom |
Description |
| json_string_expr |
Ce paramètre permet de spécifier l'expression de chaîne de caractères qui contient les données JSON d'où vous voulez extraire une valeur scalaire. |
| json_path_string_literal |
Ce paramètre permet de définir le chemin JSON (en utilisant la syntaxe du chemin JSON) pointant vers l'élément scalaire spécifique à extraire. Ce chemin doit être une chaîne de caractères littérale (c'est-à-dire une constante). |
Description
Cette fonction permet d'extraire un scalaire de format JSON et de retourner une chaîne de caractères.
Remarques
- Extraction directe de valeurs scalaires : La fonction JSON_EXTRACT_SCALAR est conçue pour extraire uniquement des valeurs scalaires à partir d'une
chaîne JSON, telles que des chaînes de caractères, des nombres, des booléens ou des valeurs nulles. Contrairement à JSON_EXTRACT, elle ne retourne pas la valeur
au format JSON, mais bien sous forme de texte brut exploitable.
- Retourne une chaîne de caractères simple : Quelle que soit la nature de la donnée (nombre, booléen,...), le résultat est toujours une chaîne de caractères,
sans guillemets ni encodage JSON. Cela la rend plus simple à utiliser directement dans des expressions, des comparaisons ou des conversions de type dans les requêtes
SQL.
- Idéale pour les traitements analytiques : Parce que la valeur extraite est prête à l'emploi (exemple : "42" plutôt que "\"42\""), cette fonction
est idéale pour intégrer des champs JSON dans des calculs ou des conditions. On peut facilement caster le résultat en INT64, FLOAT64 ou BOOL si le type cible
est connu.
- Limitation aux types simples : JSON_EXTRACT_SCALAR ne peut pas extraire des objets complexes ou des tableaux. Si le chemin désigne une structure
imbriquée ou un tableau, la fonction retournera NULL. Elle doit donc être utilisée uniquement lorsque l'on est sûr de pointer vers une valeur atomique dans le JSON.
- Utilisation de chemins JSON littéraux : Le deuxième paramètre doit impérativement être une chaîne de caractères constante représentant un chemin
JSON. Il n'est pas possible de passer dynamiquement un nom de champ ou d'utiliser une colonne comme chemin, ce qui peut limiter certains cas d'usage
flexibles.
- Très utile pour les données semi-structurées : Lorsqu'on traite des données issues d'API ou de journaux au format JSON,
cette fonction permet d'extraire rapidement des informations comme des identifiants, des dates ou des indicateurs. Elle est donc très fréquente dans les projets
de data ingestion ou de transformation de journaux de bords.
- Gestion des erreurs silencieuses : Si le chemin n'existe pas ou ne correspond pas à une valeur scalaire, la fonction retourne NULL au lieu de produire une
erreur. Cela assure une certaine robustesse dans les requêtes, mais peut aussi cacher des problèmes de structure si aucune validation préalable n'est effectuée.
- Complémentarité avec JSON_EXTRACT : JSON_EXTRACT_SCALAR et JSON_EXTRACT sont souvent utilisées ensemble selon les cas : la première pour des valeurs
exploitables directement, la seconde pour des sous-objets JSON ou pour des extractions plus générales. Choisir la bonne fonction selon le type de retour attendu est
essentiel pour éviter des erreurs de format.
Dernière mise à jour : Jeudi, le 18 Juin 2020