Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Endpoint de análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
A JSON_OBJECT sintaxe constrói o texto do objeto JSON a partir de zero ou mais expressões.
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
Uma expressão de caractere que define o valor do nome da chave JSON.
value_expression
Uma expressão que define o valor da chave JSON.
json_null_clause
Pode ser usado para controlar o comportamento da JSON_OBJECT função quando value_expression é NULL. A opção NULL ON NULL converte o valor SQL NULL em um valor nulo JSON ao gerar o valor da chave JSON. A opção ABSENT ON NULL omitirá a chave inteira se o valor for NULL. A configuração padrão para essa opção é NULL ON NULL.
Valor de retorno
Retorna uma cadeia de caracteres de objeto JSON válida do tipo nvarchar(max ). Se a RETURNING json opção estiver incluída, o objeto JSON será retornado como tipo json .
Para obter mais informações sobre o que você vê na saída da função JSON_OBJECT, consulte os seguintes artigos:
| Artigo | Description |
|---|---|
| Como o FOR JSON converte tipos de dados do SQL Server em tipos de dados JSON | A função JSON_OBJECT usa as regras descritas neste artigo FOR JSON para converter tipos de dados SQL em tipos JSON na saída do objeto JSON. |
| Como FOR JSON escapa de caracteres especiais e caracteres de controle | A função JSON_OBJECT escapa de caracteres especiais e representa caracteres de controle na saída JSON, conforme descrito neste FOR JSON artigo. |
Examples
Exemplo 1
O exemplo a seguir retorna um objeto JSON vazio.
SELECT JSON_OBJECT();
Result
{}
Exemplo 2
O exemplo a seguir retorna um objeto JSON com duas chaves.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"name":"value","type":1}
Exemplo 3
O exemplo a seguir retorna um objeto JSON com uma chave, uma vez que o valor de uma das chaves é NULL e a opção ABSENT ON NULL é especificada.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);
Result
{"name":"value"}
Exemplo 4
O exemplo a seguir retorna um objeto JSON com duas chaves. Uma chave contém uma cadeia de caracteres JSON e outra chave contém uma matriz JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));
Result
{"name":"value","type":[1,2]}
Exemplo 5
O exemplo a seguir retorna um objeto JSON com duas chaves. Uma chave contém uma cadeia de caracteres JSON e outra chave contém um objeto JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));
Result
{"name":"value","type":{"type_id":1,"name":"a"}}
Exemplo 6
O exemplo a seguir retorna um objeto JSON com as entradas especificadas como variáveis ou expressões 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}
Exemplo 7
O exemplo a seguir retorna um objeto JSON por linha na 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","status":"dormindo"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Exemplo 8
O exemplo a seguir retorna um objeto JSON como json type.
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}