Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzurePonto de extremidade de análise de SQL no Microsoft Fabric
Warehouse no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
A JSON_OBJECT sintaxe constrói o texto do objeto JSON 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 opção RETURNING json 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, confira os seguintes artigos:
| Artigo | Description |
|---|---|
| Como 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 os tipos de dados SQL em tipos JSON na saída de objeto JSON. |
| Como FOR JSON escapa caracteres especiais e caracteres de controle | A função JSON_OBJECT escapa os caracteres especiais e representa os caracteres de controle na saída JSON, conforme descrito neste artigo FOR JSON. |
Examples
Exemplo 1
O exemplo a seguir retorna uma instância de objeto JSON vazia.
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, pois 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":"sleeping"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Exemplo 8
O exemplo a seguir retorna um objeto JSON como tipo json .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}