Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLPunto de conexión de SQL Analytics en Microsoft Fabric
Almacenamiento en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
La JSON_OBJECT sintaxis construye texto de objeto JSON a partir de cero o más expresiones.
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
Expresión de caracteres que define el valor del nombre de clave JSON.
value_expression
Expresión que define el valor de la clave JSON.
json_null_clause
Se puede usar para controlar el comportamiento de la JSON_OBJECT función cuando value_expression es NULL. La opción NULL ON NULL convierte el valor SQL NULL en un valor NULL JSON al generar el valor de clave JSON. La opción ABSENT ON NULL omitirá toda la clave si el valor es NULL. La configuración predeterminada de esta opción es NULL ON NULL.
Valor devuelto
Devuelve una cadena de objeto JSON válida de tipo nvarchar(max). Si se incluye la RETURNING json opción, el objeto JSON se devuelve como tipo json .
Para obtener más información sobre lo que se ve en la salida de la función JSON_OBJECT, consulte los artículos siguientes:
| Artículo | Description |
|---|---|
| Cómo FOR JSON convierte los tipos de datos de SQL Server en tipos de datos JSON | La función JSON_OBJECT usa las reglas descritas en este artículo sobre FOR JSON para convertir tipos de datos SQL a tipos JSON en la salida de objeto JSON. |
| Cómo FOR JSON escapa caracteres especiales y caracteres de control | La función JSON_OBJECT inserta un carácter de escape en los caracteres especiales y representa los caracteres de control en la salida JSON como se describe en este artículo sobre FOR JSON. |
Examples
Ejemplo 1
En el siguiente ejemplo se devuelve un objeto JSON vacío.
SELECT JSON_OBJECT();
Result
{}
Ejemplo 2
En el ejemplo siguiente se devuelve un objeto JSON con dos claves.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"name":"value","type":1}
Ejemplo 3
En el ejemplo siguiente se devuelve un objeto JSON con una clave, ya que el valor de una de las claves es NULL y se ha especificado la opción ABSENT ON NULL.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);
Result
{"name":"value"}
Ejemplo 4
En el ejemplo siguiente se devuelve un objeto JSON con dos claves. Una clave contiene una cadena JSON y otra clave contiene una matriz JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));
Result
{"name":"value","type":[1,2]}
Ejemplo 5
En el ejemplo siguiente se devuelve un objeto JSON con dos claves. Una clave contiene una cadena JSON y otra clave contiene un objeto JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));
Result
{"name":"value","type":{"type_id":1,"name":"a"}}
Ejemplo 6
En el siguiente ejemplo se devuelve un objeto JSON con las entradas especificadas como variables o expresiones 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}
Ejemplo 7
En el siguiente ejemplo se devuelve un objeto JSON por fila de la consulta.
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","estado":"dormido"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Ejemplo 8
En el ejemplo siguiente se devuelve un objeto JSON como tipo json .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}