ISJSON (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) e Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Verifica se una stringa include contenuto JSON valido.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ISJSON ( expression [, json_type_constraint] )
Argomenti
expression
Stringa da testare.
json_type_constraint
Specifica il tipo JSON da controllare nell'input. I valori validi sono VALUE
, ARRAY
, OBJECT
, o SCALAR
. Introdotto in SQL Server 2022 (16.x)
Nota
L'argomento json_type_constraint non è supportato in nei pool dedicati Azure Synapse Analytics
Valore restituito
Restituisce 1
se la stringa include contenuto JSON valido. In caso contrario, restituisce 0
. Restituisce NULL
se expression è null.
Se l'istruzione omette json_type_constraint, la funzione verifica se l'input è una matrice o un oggetto JSON valido e restituisce 1
; in caso contrario restituisce 0
.
Se invece json_type_constraint viene specificato, la funzione verifica il tipo JSON come indicato di seguito:
valore | Descrizione |
---|---|
VALUE |
Verifica un valore JSON valido. Può essere un oggetto o una matrice JSON, un numero, una stringa o uno dei tre valori letterali: false, true, null |
ARRAY |
Verifica una matrice JSON valida |
OBJECT |
Verifica un oggetto JSON valido |
SCALAR |
Verifica un operatore scalare JSON valido: numero o stringa |
Il valore SCALAR json_type_constraint può essere usato per testare il documento JSON conforme a AETF RFC 8259, che contiene solo un valore scalare JSON a livello superiore. Un documento JSON che non contiene un valore scalare JSON a livello superiore è conforme a IETF RFC 4627.
Non restituisce errori.
Osservazioni:
ISJSON
non controlla l'univocità delle chiavi allo stesso livello.
Esempi
Esempio 1
L'esempio seguente esegue un blocco di istruzioni in modo condizionale se il valore del parametro @param
include contenuto JSON valido.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
Esempio 2
L'esempio seguente restituisce le righe in cui la colonna json_col
include contenuto JSON valido.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Esempio 3
L'esempio seguente restituisce le righe in cui la colonna json_col
include un valore JSON SCALAR a livello superiore.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Esempio 4
L'esempio seguente restituisce 1 poiché l'input è un valore JSON valido - true.
SELECT ISJSON('true', VALUE)
Esempio 5
L'esempio seguente restituisce 0 poiché l'input è un valore JSON non valido.
SELECT ISJSON('test string', VALUE)
Esempio 6
L'esempio seguente restituisce 1 poiché l'input è un valore JSON valido in base a RFC 8259.
SELECT ISJSON('"test string"', SCALAR)