ISJSON (Transact-SQL)

Platí pro: SQL Server 2016 (13.x) a novější verze koncového bodu Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticsv Microsoft FabricWarehouse v databázi Microsoft FabricSQL v Microsoft Fabric

Syntaxe ISJSON testuje, jestli řetězec obsahuje platný json.

Transact-SQL konvence syntaxe

Syntax

ISJSON ( expression [, json_type_constraint] )  

Arguments

expression

Řetězec, který se má testovat.

json_type_constraint

Určuje typ JSON, který se má vrátit se změnami vstupu. Platné hodnoty jsou VALUE, , ARRAYOBJECTnebo SCALAR. Představeno v SYSTÉMU SQL Server 2022 (16.x).

Note

Argument json_type_constraint se ve vyhrazených fondech Azure Synapse Analytics nepodporuje.

Návratová hodnota

Vrátí 1 , pokud řetězec obsahuje platný kód JSON; v opačném případě vrátí 0hodnotu . Vrátí NULLhodnotu null výrazu .

Pokud příkaz vynechá json_type_constraint, funkce testuje, jestli je vstup platným objektem nebo polem JSON a vrátí se jinak, vrátí 10.

Pokud je zadán json_type_constraint , funkce zkontroluje typ JSON následujícím způsobem:

Value Description
VALUE Testuje platnou hodnotu JSON. Může se jednat o objekt JSON, pole, číslo, řetězec nebo jednu ze tří hodnot literálů (false, true, null).
ARRAY Testy platného pole JSON
OBJECT Testy pro platný objekt JSON
SCALAR Testuje platnou skaláru JSON – číslo nebo řetězec.

Hodnota testuje SCALAR JSON dokument, který obsahuje pouze JSON skalární hodnotu na nejvyšší úrovni. IETF RFC 8259 umožňuje jakoukoli hodnotu JSON na nejvyšší úrovni, proto použijte VALUE k testování JSON dokumentu kompatibilního s IETF RFC 8259. IETF RFC 4627 povoluje pouze objekt nebo pole JSON na nejvyšší úrovni.

Nevrací chyby.

Remarks

ISJSON nekontroluje jedinečnost klíčů na stejné úrovni.

Examples

Příklad 1

Následující příklad spustí blok příkazu podmíněně, pokud hodnota @param parametru obsahuje platný json.

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

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

Příklad 2

Následující příklad vrátí řádky, ve kterých sloupec json_col obsahuje platný JSON.

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

Příklad 3

Následující příklad vrátí řádky, ve kterých sloupec json_col obsahuje platnou hodnotu JSON SCALAR na nejvyšší úrovni.

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

Příklad 4

Následující příklad vrátí hodnotu 1, protože vstup je platná hodnota JSON – true.

SELECT ISJSON('true', VALUE)

Příklad 5

Následující příklad vrátí hodnotu 0, protože vstup je neplatná hodnota JSON.

SELECT ISJSON('test string', VALUE)

Příklad 6

Následující příklad vrátí hodnotu 1, protože vstup je platným skalárem JSON podle dokumentu RFC 8259.

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