Sdílet prostřednictvím


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.

Json_type_constraint hodnotu SCALAR lze použít k otestování dokumentu JSON vyhovujícího formátu IETF RFC 8259, který obsahuje pouze skalární hodnotu JSON na nejvyšší úrovni. Dokument JSON, který neobsahuje skalární hodnotu JSON na nejvyšší úrovni, odpovídá IETF RFC 4627.

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)