Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Endpoint SQL analytics dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
La JSON_OBJECT syntaxe construit le texte d’objet JSON à partir de zéro ou plusieurs expressions.
Syntax
JSON_OBJECT ( [ <json_key_value> [ , ...n ] ] [ json_null_clause ] [ RETURNING json ] )
<json_key_value> ::= json_key_name : value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Arguments
json_key_name
Expression de caractère qui définit la valeur du nom de clé JSON.
value_expression
Expression qui définit la valeur de la clé JSON.
json_null_clause
Peut être utilisé pour contrôler le comportement de JSON_OBJECT la fonction lorsque value_expression est NULL. L’option NULL ON NULL convertit la valeur SQL NULL en valeur NULL JSON lors de la génération de la valeur de clé JSON. L’option ABSENT ON NULL omet la clé entière si la valeur est NULL. La valeur par défaut de cette option est NULL ON NULL.
Valeur retournée
Retourne une chaîne d’objet JSON valide de type nvarchar(max). Si l’option RETURNING json est incluse, l’objet JSON est retourné en tant que type json .
Pour plus d’informations sur ce que vous voyez dans la sortie de la fonction JSON_OBJECT, consultez les articles suivants :
| Article | Descriptif |
|---|---|
| Comment FOR JSON convertit les types de données SQL Server en types de données JSON | La fonction JSON_OBJECT utilise les règles décrites dans cet article FOR JSON pour convertir les types de données SQL en types JSON dans la sortie d’objet JSON. |
| Comment FOR JSON échappe des caractères spéciaux et des caractères de contrôle | La fonction JSON_OBJECT 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 article FOR JSON. |
Examples
Exemple 1
L’exemple suivant retourne un objet JSON vide.
SELECT JSON_OBJECT();
Result
{}
Exemple 2
L’exemple suivant retourne un objet JSON avec deux clés.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"name":"value","type":1}
Exemple 3
L’exemple suivant retourne un objet JSON avec une clé puisque la valeur de l’une des clés est NULL et que l’option ABSENT ON NULL est spécifiée.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);
Result
{"name":"value"}
Exemple 4
L’exemple suivant retourne un objet JSON avec deux clés. Une clé contient une chaîne JSON et une autre clé contient un tableau JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));
Result
{"name":"value","type":[1,2]}
Exemple 5
L’exemple suivant retourne un objet JSON avec deux clés. Une clé contient une chaîne JSON et une autre clé contient un objet JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));
Result
{"name":"value","type":{"type_id":1,"name":"a"}}
Exemple 6
L’exemple suivant retourne un objet JSON avec les entrées spécifiées sous forme de variables ou d’expressions SQL.
DECLARE @id_key AS NVARCHAR (10) = N'id', @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_OBJECT('user_name':USER_NAME(), @id_key:@id_value, 'sid':(SELECT @@SPID));
Result
{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}
Exemple 7
L’exemple suivant retourne un objet JSON par ligne dans la requête.
SELECT s.session_id,
JSON_OBJECT('security_id':s.security_id, 'login':s.login_name, 'status':s.status) AS info
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
Result
session_id |
info |
|---|---|
| 51 |
{"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22","status » :"sleeping"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Exemple 8
L’exemple suivant retourne un objet JSON en tant que type JSON .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}