ISJSON (Transact-SQL)
S’applique à : point de terminaison d’analytique SQL Server 2016 (13.x) et ultérieur Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL Analytics dans Microsoft Fabric Warehouse
Teste si une chaîne contient des données JSON valides.
Conventions de la syntaxe Transact-SQL
Syntaxe
ISJSON ( expression [, json_type_constraint] )
Arguments
expression
Chaîne à tester.
json_type_constraint
Spécifie le type JSON à vérifier dans l’entrée. Les valeurs valides sont VALUE
, ARRAY
, OBJECT
ou SCALAR
. Introduite dans SQL Server 2022 (16.x).
Remarque
L’argument json_type_constraint n’est pas pris en charge dans les pools dédiés Azure Synapse Analytics
Valeur retournée
Renvoie 1
si la chaîne contient des données JSON valides ; sinon, renvoie 0
. Renvoie NULL
si expression est null.
Si l’instruction omet json_type_constraint, la fonction teste si l’entrée est un objet JSON ou un tableau valide et retourne 1
sinon, elle retourne 0
.
Si json_type_constraint est spécifié, la fonction vérifie le type JSON comme suit :
Valeur | Description |
---|---|
VALUE |
Teste une valeur JSON valide. Il peut s’agir d’un objet, d’un tableau, d’un numéro, d’une chaîne JSON ou d’une des trois valeurs littérales (false, true, null) |
ARRAY |
Teste un tableau JSON valide |
OBJECT |
Teste un objet JSON valide |
SCALAR |
Teste un scalaire JSON valide – numéro ou chaîne |
La valeur SCALAR json_type_constraint peut être utilisée pour tester le document JSON conforme RFC 8259 IETF qui contient uniquement une valeur scalaire JSON au niveau supérieur. Un document JSON qui ne contient pas de valeur scalaire JSON au niveau supérieur conforme à IETF RFC 4627.
Ne renvoie pas d’erreurs.
Notes
ISJSON
ne vérifie pas l’unicité des clés au même niveau.
Exemples
Exemple 1
L’exemple suivant exécute un bloc d’instructions de manière conditionnelle si la valeur de paramètre @param
contient des données JSON valides.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
Exemple 2
L’exemple suivant retourne des lignes dans lesquelles la colonne json_col
contient un JSON valide.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Exemple 3
L’exemple suivant retourne des lignes dans lesquelles la colonne json_col
contient une valeur SCALAR JSON valide au niveau supérieur.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Exemple 4
L’exemple suivant retourne 1, car l’entrée est une valeur JSON valide - true.
SELECT ISJSON('true', VALUE)
Exemple 5
L’exemple suivant retourne 0, car l’entrée est une valeur JSON non valide.
SELECT ISJSON('test string', VALUE)
Exemple 6
L’exemple suivant retourne 1, car l’entrée est une valeur scalaire JSON valide, conformément au RFC 8259.
SELECT ISJSON('"test string"', SCALAR)