Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL Analytics-slutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
SQL 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)