Dela via


JSON_ARRAY (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-analysslutpunkt i Microsoft FabricWarehouse i Microsoft Fabric

Konstruerar JSON-matristext från noll eller fler uttryck.

Syntax

JSON_ARRAY ( [ <json_array_value> [ , ...n ] ] [ <json_null_clause> ] [ RETURNING json ] )

<json_array_value> ::= value_expression

<json_null_clause> ::=
      NULL ON NULL
    | ABSENT ON NULL

Argument

json_array_value

Ett uttryck som definierar värdet för elementet i JSON-matrisen.

json_null_clause

Kan användas för att styra beteendet för JSON_OBJECT funktion när value_expression är NULL. Alternativet NULL ON NULL konverterar SQL-NULL-värdet till ett JSON-NULL-värde när du genererar värdet för elementet i JSON-matrisen. Alternativet ABSENT ON NULL utelämnar elementet i JSON-matrisen om värdet är NULL. Standardinställningen för det här alternativet är ABSENT ON NULL.

Returvärde

Returnerar en giltig JSON-matrissträng med nvarchar(max) typ. Om alternativet RETURNING json ingår returneras JSON-matrisen som json-typ .

Mer information om vad du ser i utdata för funktionen JSON_ARRAY finns i följande artiklar:

Article Description
Så här konverterar FÖR JSON SQL Server-datatyper till JSON-datatyper Funktionen JSON_ARRAY använder de regler som beskrivs i den här FOR JSON artikeln för att konvertera SQL-datatyper till JSON-typer i JSON-matrisens utdata.
Hur för JSON hanterar specialtecken och kontrolltecken Funktionen JSON_ARRAY undflyr specialtecken och representerar kontrolltecken i JSON-utdata enligt beskrivningen i den här FOR JSON artikeln.

Exempel

Exempel 1

I följande exempel returneras en tom JSON-matris.

SELECT JSON_ARRAY();

resultat

[]

Exempel 2

I följande exempel returneras en JSON-matris med fyra element.

SELECT JSON_ARRAY('a', 1, 'b', 2);

resultat

["a",1,"b",2]

Exempel 3

I följande exempel returneras en JSON-matris med tre element eftersom ett av indatavärdena är NULL. Eftersom json_null_clause utelämnas och standardvärdet för det här alternativet är ABSENT ON NULLkonverteras NULL inte värdet i någon av indata till ett JSON null-värde.

SELECT JSON_ARRAY('a', 1, 'b', NULL);

resultat

["a",1,"b"]

Exempel 4

I följande exempel returneras en JSON-matris med fyra element. Alternativet NULL ON NULL anges så att alla SQL-NULL-värden i indata konverteras till JSON null-värdet i JSON-matrisen.

SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL);

resultat

["a",1,null,2]

Exempel 5

I följande exempel returneras en JSON-matris med två element. Ett element innehåller en JSON-sträng och ett annat element innehåller ett JSON-objekt.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1));

resultat

["a",{"name":"value","type":1}]

Exempel 6

I följande exempel returneras en JSON-matris med tre element. Ett element innehåller en JSON-sträng, ett annat element innehåller ett JSON-objekt och ett annat element innehåller en JSON-matris.

SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, NULL, 2 NULL ON NULL));

resultat

["a",{"name":"value","type":1},[1,null,2]]

Exempel 7

I följande exempel returneras en JSON-matris med de indata som anges som variabler eller SQL-uttryck.

DECLARE @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));

resultat

[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]

Exempel 8

I följande exempel returneras en JSON-matris per rad i frågan.

SELECT s.session_id,
       JSON_ARRAY(s.host_name, s.program_name, s.client_interface_name)
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;

resultat

session_id information
52 ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"]
55 ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"]
56 ["WIN19-VM","SQLServerCEIP",".Net SqlClient Data Provider"]

Exempel 9

I följande exempel returneras en JSON-matris som json-typ .

SELECT JSON_ARRAY(1 RETURNING JSON);

resultat

[1]