Catégories :

Fonctions de données semi-structurées (Parsing)

CHECK_JSON

Vérifie la validité d’un document JSON. Si la chaîne d’entrée est un document JSON valide ou une valeur NULL, la sortie est NULL (pas une erreur). Si l’entrée ne peut pas être traduite en une valeur JSON valide, la chaîne de sortie contient le message d’erreur.

Syntaxe

CHECK_JSON( <string_or_variant_expr> )

Arguments

expr_chaîne_ou_variante

Une VARIANT ou une valeur de chaîne (ou une expression) à vérifier.

Si l’expression est de type VARIANT, elle devrait contenir une chaîne.

Exemples

Créer une table et insérer certaines valeurs VARCHAR et VARIANT :

CREATE TABLE sample_json_table (ID INTEGER, varchar1 VARCHAR, variant1 VARIANT);
INSERT INTO sample_json_table (ID, varchar1) VALUES 
    (1, '{"ValidKey1": "ValidValue1"}'),
    (2, '{"Malformed -- Missing value": }'),
    (3, NULL)
    ;
UPDATE sample_json_table SET variant1 = varchar1::VARIANT;

Utilisez la fonction CHECK_JSON pour vérifier la validité des chaînes compatibles JSON potentielles dans une colonne VARCHAR :

SELECT ID, CHECK_JSON(varchar1), varchar1 FROM sample_json_table ORDER BY ID;
+----+----------------------+----------------------------------+
| ID | CHECK_JSON(VARCHAR1) | VARCHAR1                         |
|----+----------------------+----------------------------------|
|  1 | NULL                 | {"ValidKey1": "ValidValue1"}     |
|  2 | misplaced }, pos 32  | {"Malformed -- Missing value": } |
|  3 | NULL                 | NULL                             |
+----+----------------------+----------------------------------+

Utilisez la fonction CHECK_JSON pour vérifier la validité des chaînes compatibles JSON potentielles dans une colonne VARIANT :

SELECT ID, CHECK_JSON(variant1), variant1 FROM sample_json_table ORDER BY ID;
+----+----------------------+--------------------------------------+
| ID | CHECK_JSON(VARIANT1) | VARIANT1                             |
|----+----------------------+--------------------------------------|
|  1 | NULL                 | "{\"ValidKey1\": \"ValidValue1\"}"   |
|  2 | misplaced }, pos 32  | "{\"Malformed -- Missing value\": }" |
|  3 | NULL                 | NULL                                 |
+----+----------------------+--------------------------------------+