- Catégories :
Fonctions de données semi-structurées et structurées (analyse)
TRY_PARSE_JSON¶
Une version spéciale de PARSE_JSON qui renvoie une valeur NULL si une erreur se produit pendant l’analyse.
Syntaxe¶
TRY_PARSE_JSON( <expr> [ , '<parameter>' ] )
Arguments¶
Obligatoire :
expr
Une expression de type chaîne (par exemple, VARCHAR) qui contient des informations JSON valides.
Facultatif :
'parameter'
Constante de chaîne qui spécifie le paramètre utilisé pour rechercher les correspondances. Valeurs prises en charge :
Paramètre
Description
d
Autoriser les clés en double dans les objets JSON. Si un objet JSON contient une clé en double, l’objet renvoyé contient une instance unique de cette clé avec la dernière valeur spécifiée pour cette clé.
s
Ne pas autoriser les clés en double dans les objets JSON (strict). Cette valeur est la valeur par défaut.
Renvoie¶
Renvoie une valeur de type VARIANT qui contient un document JSON.
Si l’entrée est NULL ou si une erreur se produit lors de l’analyse, la fonction renvoie NULL.
Cette fonction ne renvoie pas de type structuré.
Notes sur l’utilisation¶
Pour les Notes sur l’utilisation, voir PARSE_JSON.
Exemples¶
Cela montre un exemple de stockage de différents types de données dans une colonne VARIANT en appelant TRY_PARSE_JSON pour analyser des chaînes contenant des valeurs pouvant être analysées comme JSON :
Créez et remplissez une table.
CREATE OR REPLACE TEMPORARY TABLE vartab (ID INTEGER, v VARCHAR);
INSERT INTO vartab (id, v) VALUES
(1, '[-1, 12, 289, 2188, FALSE,]'),
(2, '{ "x" : "abc", "y" : FALSE, "z": 10} '),
(3, '{ "bad" : "json", "missing" : TRUE, "close_brace": 10 ');
Interroger les données à l’aide de TRY_PARSE_JSON. Notez que la valeur de la troisième ligne est NULL. Si la requête utilisait PARSE_JSON plutôt que TRY_PARSE_JSON, cela échouerait.
SELECT ID, TRY_PARSE_JSON(v)
FROM vartab
ORDER BY ID;
+----+-------------------+
| ID | TRY_PARSE_JSON(V) |
|----+-------------------|
| 1 | [ |
| | -1, |
| | 12, |
| | 289, |
| | 2188, |
| | false, |
| | undefined |
| | ] |
| 2 | { |
| | "x": "abc", |
| | "y": false, |
| | "z": 10 |
| | } |
| 3 | NULL |
+----+-------------------+
Voir PARSE_JSON pour plus d’exemples.