ISJSON (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und später Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics SQL-Analyse-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Testet, ob eine Zeichenfolge gültiges JSON enthält.
Transact-SQL-Syntaxkonventionen
Syntax
ISJSON ( expression [, json_type_constraint] )
Argumente
expression
Die zu testende Zeichenfolge.
json_type_constraint
Gibt den JSON-Typ an, der in der Eingabe überprüft werden soll. Gültige Werte sind VALUE
, ARRAY
, OBJECT
oder SCALAR
. Wurde in SQL Server 2022 (16.x) eingeführt.
Hinweis
Das Argument json_type_constraint wird in dedizierten Pools in Azure Synapse Analytics nicht unterstützt.
Rückgabewert
Gibt 1
zurück, wenn die Zeichenfolge gültiges JSON enthält. Andernfalls wird 0
zurückgegeben. Gibt NULL
zurück, wenn der Ausdruck Null ist.
Wenn die Anweisung json_type_constraint, auslässt, testet die Funktion, ob die Eingabe ein gültiges JSON-Objekt oder Array ist und gibt 1
zurück, andernfalls 0
.
Wenn json_type_constraint angegeben wird, sucht die Funktion wie folgt nach dem JSON-Typ:
Wert | Beschreibung |
---|---|
VALUE |
Prüft auf einen gültigen JSON-Wert. Dies kann ein JSON-Objekt, ein Array, eine Zahl, eine Zeichenfolge oder einer der drei Literalwerte (FALSE, TRUE, NULL) sein. |
ARRAY |
Prüft auf ein gültiges JSON-Array. |
OBJECT |
Prüft auf ein gültiges JSON-Objekt. |
SCALAR |
Prüft auf einen gültigen JSON-Skalar – Zahl oder Zeichenfolge. |
Der json_type_constraint-Wert SCALAR kann verwendet werden, um auf IETF RFC 8259-konforme JSON-Dokumente zu testen, die nur einen JSON-Skalarwert auf oberster Ebene enthalten. Ein JSON-Dokument, das keinen JSON-Skalarwert auf oberster Ebene enthält, entspricht IETF RFC 4627.
Gibt keine Fehler zurück.
Hinweise
ISJSON
überprüft nicht die Eindeutigkeit der Schlüssel auf derselben Ebene.
Beispiele
Beispiel 1
Im folgenden Beispiel wird ein Anweisungsblock bedingt ausgeführt, wenn der Parameterwert @param
gültiges JSON enthält.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
Beispiel 2
Im folgenden Beispiel werden die Spalten zurückgegeben, falls die Spalte json_col
ein gültiges JSON enthält.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Beispiel 3
Im folgenden Beispiel werden Zeilen zurückgegeben, in denen die Spalte json_col
einen gültigen JSON-SCALAR-Wert auf oberster Ebene enthält.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Beispiel 4
Im folgenden Beispiel wird 1 zurückgegeben, da es sich bei der Eingabe um einen gültigen JSON-Wert handelt: true.
SELECT ISJSON('true', VALUE)
Beispiel 5
Im folgenden Beispiel wird 0 zurückgegeben, da es sich bei der Eingabe um einen ungültigen JSON-Wert handelt.
SELECT ISJSON('test string', VALUE)
Beispiel 6
Im folgenden Beispiel wird 1 zurückgegeben, da es sich bei der Eingabe um einen gültigen JSON-Skalarwert gemäß RFC 8259 handelt.
SELECT ISJSON('"test string"', SCALAR)