JSON_ARRAY (Transact-SQL)

Se aplica a: SQL Server 2022 (16.x) Azure SQL Database

Construye texto de matriz JSON a partir de cero o más expresiones.

Sintaxis

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

<json_array_value> ::= value_expression

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

Argumentos

json_array_value es una expresión que define el valor del elemento en la matriz JSON.

json_null_clause se puede usar para controlar el comportamiento de la función JSON_OBJECT cuando value_expression es NULL. La opción NULL ON NULL convierte el valor NULL de SQL en un valor NULL de JSON al generar el valor del elemento en la matriz JSON. La opción ABSENT ON NULL omitirá el elemento de la matriz JSON si el valor es NULL. El valor predeterminado de esta opción es ABSENT ON NULL.

Para obtener más información sobre lo que se ve en la salida de la función JSON_ARRAY, consulte los artículos siguientes:

Valor devuelto

Devuelve una cadena de matriz JSON válida de tipo nvarchar(max).

Observaciones

Ejemplos

Ejemplo 1

En el siguiente ejemplo se devuelve una matriz JSON vacía.

SELECT JSON_ARRAY();

Resultado

[]

Ejemplo 2

En el siguiente ejemplo se devuelve una matriz JSON con cuatro elementos.

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

Resultado

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

Ejemplo 3

En el siguiente ejemplo se devuelve una matriz JSON con tres elementos, ya que uno de los valores de entrada es NULL. Como json_null_clause se omite y el valor predeterminado de esta opción es ABSENT ON NULL, el valor NULL de una de las entradas no se convierte en un valor NULL de JSON.

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

Resultado

["a",1,"b"]

Ejemplo 4

En el siguiente ejemplo se devuelve una matriz JSON con cuatro elementos. La opción NULL ON NULL se especifica para que cualquier valor NULL de SQL de la entrada se convierta en un valor NULL de JSON en la matriz JSON.

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

Resultado

["a",1,null,2]

Ejemplo 5

En el siguiente ejemplo se devuelve una matriz JSON con dos elementos. Un elemento contiene una cadena JSON y el otro, un objeto JSON.

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

Resultado

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

Ejemplo 6

En el siguiente ejemplo se devuelve una matriz JSON con tres elementos. Un elemento contiene una cadena JSON, otro elemento contiene un objeto JSON y otro elemento contiene una matriz JSON.

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

Resultado

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

Ejemplo 7

En el siguiente ejemplo se devuelve una matriz JSON con las entradas especificadas como variables o expresiones SQL.

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

Resultado

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

Ejemplo 8

En el siguiente ejemplo se devuelve una matriz JSON por fila de la consulta.

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;

Resultado

session_id info
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"]

Consulte también

Datos JSON (SQL Server)