ISJSON (Transact-SQL)

Van toepassing op: SQL Server 2016 (13.x) en latere versies Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics SQL Analytics-eindpuntin Microsoft FabricWarehouse in Microsoft FabricSQL Database in Microsoft Fabric SQL Database in Microsoft Fabric

De ISJSON syntaxis test of een tekenreeks geldige JSON bevat.

Transact-SQL syntaxis-conventies

Syntax

ISJSON ( expression [, json_type_constraint] )  

Arguments

expression

De tekenreeks die moet worden getest.

json_type_constraint

Hiermee geeft u het JSON-type op om de invoer in te checken. Geldige waarden zijnVALUE, ARRAY, of OBJECTSCALAR. Geïntroduceerd in SQL Server 2022 (16.x).

Note

Het argument json_type_constraint wordt niet ondersteund in toegewezen Azure Synapse Analytics-pools

Retourwaarde

Retourneert 1 als de tekenreeks geldige JSON bevat; anders wordt geretourneerd 0. Retourneert NULL als expressie null is.

Als de instructie json_type_constraint weglaat, test de functie of de invoer een geldig JSON-object of een geldige matrix is en retourneert 1anders0.

Als de json_type_constraint is opgegeven, controleert de functie als volgt op het JSON-type:

Value Description
VALUE Hiermee wordt getest op een geldige JSON-waarde. Dit kan een JSON-object, matrix, getal, tekenreeks of een van de drie letterlijke waarden zijn (onwaar, waar, null)
ARRAY Tests voor een geldige JSON-matrix
OBJECT Tests voor een geldig JSON-object
SCALAR Tests voor een geldige JSON-scalaire waarde : getal of tekenreeks

De SCALAR waarde test voor een JSON-document dat alleen een JSON-scalairwaarde bevat op het hoogste niveau. IETF RFC 8259 staat elke JSON-waarde toe op het hoogste niveau, dus gebruik VALUE het om te testen op een IETF RFC 8259-conforme JSON-document. IETF RFC 4627 staat alleen een JSON-object of array toe op het hoogste niveau.

Retourneert geen fouten.

Remarks

ISJSON controleert niet de uniekheid van sleutels op hetzelfde niveau.

Examples

Voorbeeld 1

In het volgende voorbeeld wordt een instructieblok voorwaardelijk uitgevoerd als de parameterwaarde @param geldige JSON bevat.

DECLARE @param <data type>
SET @param = <value>

IF (ISJSON(@param) > 0)  
BEGIN  
     -- Do something with the valid JSON value of @param.  
END

Voorbeeld 2

In het volgende voorbeeld worden rijen geretourneerd waarin de kolom json_col geldige JSON bevat.

SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1 

Voorbeeld 3

In het volgende voorbeeld worden rijen geretourneerd waarin de kolom json_col geldige JSON SCALAR-waarde op het hoogste niveau bevat.

SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1 

Voorbeeld 4

In het volgende voorbeeld wordt 1 geretourneerd omdat de invoer een geldige JSON-waarde is, waar.

SELECT ISJSON('true', VALUE)

Voorbeeld 5

In het volgende voorbeeld wordt 0 geretourneerd omdat de invoer een ongeldige JSON-waarde is.

SELECT ISJSON('test string', VALUE)

Voorbeeld 6

In het volgende voorbeeld wordt 1 geretourneerd omdat de invoer een geldigE JSON-scalaire waarde is volgens RFC 8259.

SELECT ISJSON('"test string"', SCALAR)