JSON_ARRAY (Transact-SQL)
S’applique à : SQL Server 2022 (16.x) Azure SQL Database
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 quand value_expression 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. Le paramètre par défaut pour cette option est ABSENT ON NULL.
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
.
Valeur retournée
Retourne une chaîne de tableau JSON valide de type nvarchar(max).
Notes
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"] |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour