JSON_ARRAY (Transact-SQL)
S’applique à : SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance
Construit le texte du tableau JSON à partir de zéro expression ou plus.
Syntaxe
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Arguments
json_array_value
Est une expression qui définit la valeur de l’élément dans le tableau JSON.
json_null_clause
Peut être utilisé pour contrôler le comportement de la fonction JSON_OBJECT
lorsque l'expression_valeur est NULL. L’option NULL ON NULL
convertit la valeur NULL
SQL en valeur null
JSON lors de la génération de la valeur de l’élément dans le tableau JSON. L’option ABSENT ON NULL
omet l’élément dans le tableau JSON si la valeur est NULL. La valeur par défaut de cette option est ABSENT ON NULL
.
Valeur retournée
Retourne une chaîne de tableau JSON valide de type nvarchar(max).
Pour plus d’informations sur ce que vous voyez dans la sortie de la fonction JSON_ARRAY
, consultez les articles suivants :
Conversion par FOR JSON des types de données SQL Server en types de données JSON (SQL Server)
La fonctionJSON_ARRAY
utilise les règles décrites dans cet articleFOR JSON
pour convertir les types de données SQL en types JSON dans la sortie de tableau JSON.Comment FOR JSON place dans une séquence d’échappement les caractères spéciaux et les caractères de contrôle (SQL Server)
La fonctionJSON_ARRAY
met en échappement les caractères spéciaux et représente les caractères de contrôle dans la sortie JSON, comme décrit dans cet articleFOR JSON
.
Exemples
Exemple 1
L’exemple suivant retourne un tableau JSON vide.
SELECT JSON_ARRAY();
Résultat
[]
Exemple 2
L’exemple suivant retourne un tableau JSON avec quatre éléments.
SELECT JSON_ARRAY('a', 1, 'b', 2)
Résultat
["a",1,"b",2]
Exemple 3
L’exemple suivant retourne un tableau JSON avec trois éléments, car l’une des valeurs d’entrée est NULL. Étant donné que json_null_clause est omis et que la valeur par défaut de cette option est ABSENT ON NULL, la valeur NULL dans l’une des entrées n’est pas convertie en valeur null JSON.
SELECT JSON_ARRAY('a', 1, 'b', NULL)
Résultat
["a",1,"b"]
Exemple 4
L’exemple suivant retourne un tableau JSON avec quatre éléments. L’option NULL ON NULL est spécifiée afin que toute valeur NULL SQL dans l’entrée soit convertie en valeur Null JSON dans le tableau JSON.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
Résultat
["a",1,null,2]
Exemple 5
L’exemple suivant retourne un tableau JSON avec deux éléments. Un élément contient une chaîne JSON et un autre élément contient un objet JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
Résultat
["a",{"name":"value","type":1}]
Exemple 6
L’exemple suivant retourne un tableau JSON avec trois éléments. Un élément contient une chaîne JSON, un autre élément contient un objet JSON et un autre élément contient un tableau JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
Résultat
["a",{"name":"value","type":1},[1,null,2]]
Exemple 7
L’exemple suivant retourne un tableau JSON avec les entrées spécifiées sous forme de variables ou d’expressions SQL.
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
Résultat
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Exemple 8
L’exemple suivant retourne un tableau JSON par ligne dans la requête.
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;
Résultat
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"] |