JSON_ARRAY (Transact-SQL)

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

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. La configuración predeterminada de esta opción es ABSENT ON NULL.

Valor devuelto

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

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:

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, un objeto JSON, y otro, 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"]