Agregar un nodo raíz a la salida JSON con la opción ROOT (SQL Server)
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (solo grupo de SQL sin servidor)
Para agregar un solo elemento de nivel superior a la salida JSON de la cláusula FOR JSON , especifique la opción ROOT .
Si no especifica la opción ROOT , la salida JSON no incluye un elemento raíz.
Ejemplos
En la tabla siguiente se muestra la salida de la cláusula FOR JSON con y sin la opción ROOT .
En los ejemplos de la tabla siguiente se asume que el argumento RootName opcional está vacío. Si proporciona un nombre para el elemento raíz, este valor reemplaza el valor root en los ejemplos.
Sin la opción ROOT
{
<<json properties>>
}
[
<<json array elements>>
]
Con la opción ROOT
{
"root": {
<<json properties>>
}
}
{
"root": [
<< json array elements >>
]
}
Este es otro ejemplo de una cláusula FOR JSON con la opción ROOT . En este ejemplo se especifica un valor para el argumento RootName opcional.
Consultar
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH, ROOT('info')
Resultado
{
"info": [{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info": {
"MiddleName": "J"
}
}, {
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info": {
"MiddleName": "Lee"
}
}, {
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
}, {
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
}, {
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info": {
"Title": "Ms.",
"MiddleName": "A"
}
}]
}
Resultado (sin raíz)
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info": {
"MiddleName": "J"
}
}, {
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info": {
"MiddleName": "Lee"
}
}, {
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
}, {
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
}, {
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info": {
"Title": "Ms.",
"MiddleName": "A"
}
}]
Más información sobre JSON en SQL Server y Azure SQL Database
Vídeos de Microsoft
Nota:
Es posible que algunos de los vínculos de vídeo de esta sección no funcionen en este momento. Microsoft está migrando contenido que anteriormente estaba en Channel 9 a una nueva plataforma. Actualizaremos los vínculos a medida que los vídeos se migren a la nueva plataforma.
Para obtener una introducción visual a la compatibilidad integrada de JSON en SQL Server y Azure SQL Database, vea los siguientes vídeos:
- JSON as a bridge between NoSQL and relational worlds (JSON como puente entre los universos NoSQL y relacional)