Delen via


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 Preview

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

Return value

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 0anders1.

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 json_type_constraint waarde SCALAR kan worden gebruikt om te testen op IETF RFC 8259 conforme JSON-document dat alleen een JSON scalaire waarde op het hoogste niveau bevat. Een JSON-document dat geen JSON scalaire waarde op het hoogste niveau bevat, voldoet aan IETF RFC 4627.

Retourneert geen fouten.

Remarks

ISJSON controleert niet de uniekheid van sleutels op hetzelfde niveau.

Examples

Example 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

Example 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 

Example 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 

Example 4

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

SELECT ISJSON('true', VALUE)

Example 5

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

SELECT ISJSON('test string', VALUE)

Example 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)