Udostępnij za pomocą


ISJSON (Transact-SQL)

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje usługi Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics— punkt końcowy analizy SQL w usłudze Microsoft FabricWarehouse wbazie danych Microsoft Fabric SQL Database w usłudze Microsoft Fabric

Składnia ISJSON sprawdza, czy ciąg zawiera prawidłowy kod JSON.

Transact-SQL konwencje składni

Syntax

ISJSON ( expression [, json_type_constraint] )  

Arguments

expression

Ciąg do przetestowania.

json_type_constraint

Określa typ JSON do zaewidencjonowania danych wejściowych. Prawidłowe wartości to VALUE, , ARRAYOBJECTlub SCALAR. Wprowadzono w programie SQL Server 2022 (16.x).

Note

Argument json_type_constraint nie jest obsługiwany w dedykowanych pulach usługi Azure Synapse Analytics

Wartość zwracana

Zwraca 1 wartość , jeśli ciąg zawiera prawidłowy kod JSON; w przeciwnym razie zwraca wartość 0. Zwraca wartość NULL , jeśli wyrażenie ma wartość null.

Jeśli instrukcja pomija json_type_constraint, funkcja sprawdza, czy dane wejściowe są prawidłowym obiektem lub tablicą JSON i zwracają w przeciwnym razie wartość 10.

Jeśli określono json_type_constraint , funkcja sprawdza typ JSON w następujący sposób:

Value Description
VALUE Testuje prawidłową wartość JSON. Może to być obiekt JSON, tablica, liczba, ciąg lub jedna z trzech wartości literału (false, true, null)
ARRAY Testy prawidłowej tablicy JSON
OBJECT Testy prawidłowego obiektu JSON
SCALAR Testy prawidłowego skalarnego kodu JSON — liczba lub ciąg

Wartość json_type_constraint SCALAR może służyć do testowania dla zgodnego dokumentu JSON JSON IETF RFC 8259, który zawiera tylko wartość skalarną JSON na najwyższym poziomie. Dokument JSON, który nie zawiera wartości skalarnej JSON na najwyższym poziomie, jest zgodny z IETF RFC 4627.

Nie zwraca błędów.

Remarks

ISJSON nie sprawdza unikatowości kluczy na tym samym poziomie.

Examples

Przykład 1

Poniższy przykład uruchamia blok instrukcji warunkowo, jeśli wartość @param parametru zawiera prawidłowy kod JSON.

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

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

Przykład 2

Poniższy przykład zwraca wiersze, w których kolumna json_col zawiera prawidłowy kod JSON.

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

Przykład 3

Poniższy przykład zwraca wiersze, w których kolumna json_col zawiera prawidłową wartość SCALAR w formacie JSON na najwyższym poziomie.

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

Przykład 4

Poniższy przykład zwraca wartość 1, ponieważ dane wejściowe są prawidłową wartością JSON — true.

SELECT ISJSON('true', VALUE)

Przykład 5

Poniższy przykład zwraca wartość 0, ponieważ dane wejściowe są nieprawidłową wartością JSON.

SELECT ISJSON('test string', VALUE)

Przykład 6

Poniższy przykład zwraca wartość 1, ponieważ dane wejściowe są prawidłowym skalarnym formatem JSON zgodnie z RFC 8259.

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