Dela via


ISJSON (Transact-SQL)

Gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Analytics-slutpunkt i Microsoft Fabric Warehouse i Microsoft FabricSQL Database i Förhandsversion av Microsoft Fabric

Syntaxen ISJSON testar om en sträng innehåller giltig JSON.

Transact-SQL syntaxkonventioner

Syntax

ISJSON ( expression [, json_type_constraint] )  

Arguments

expression

Strängen som ska testas.

json_type_constraint

Anger JSON-typen för att checka in indata. Giltiga värden är VALUE, ARRAY, OBJECTeller SCALAR. Introducerades i SQL Server 2022 (16.x).

Note

Argumentet json_type_constraint stöds inte i dedikerade Azure Synapse Analytics-pooler

Return value

Returnerar 1 om strängen innehåller giltig JSON. Annars returneras 0. Returnerar NULL om uttrycket är null.

Om instruktionen utelämnar json_type_constraint, testar funktionen om indata är ett giltigt JSON-objekt eller matris och returnerar 1 något annat, returnerar 0den .

Om json_type_constraint anges söker funktionen efter JSON-typen enligt följande:

Value Description
VALUE Testar för ett giltigt JSON-värde. Det kan vara ett JSON-objekt, en matris, ett tal, en sträng eller ett av de tre literalvärdena (false, true, null)
ARRAY Tester för en giltig JSON-matris
OBJECT Tester för ett giltigt JSON-objekt
SCALAR Tester för en giltig JSON-skalär – tal eller sträng

Det json_type_constraint värdet SCALAR kan användas för att testa för IETF RFC 8259-överensstämmande JSON-dokument som endast innehåller ett JSON-skalärt värde på den översta nivån. Ett JSON-dokument som inte innehåller ett JSON-skalärvärde på den översta nivån överensstämmer med IETF RFC 4627.

Returnerar inte fel.

Remarks

ISJSON kontrollerar inte unika nycklar på samma nivå.

Examples

Example 1

I följande exempel körs ett instruktionsblock villkorligt om parametervärdet @param innehåller giltig JSON.

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

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

Example 2

I följande exempel returneras rader där kolumnen json_col innehåller giltig JSON.

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

Example 3

I följande exempel returneras rader där kolumnen json_col innehåller ett giltigt JSON SCALAR-värde på den översta nivån.

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

Example 4

I följande exempel returneras 1 eftersom indata är ett giltigt JSON-värde – sant.

SELECT ISJSON('true', VALUE)

Example 5

Följande exempel returnerar 0 eftersom indata är ett ogiltigt JSON-värde.

SELECT ISJSON('test string', VALUE)

Example 6

Följande exempel returnerar 1 eftersom indata är en giltig JSON-skalär enligt RFC 8259.

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