title | description | author | ms.author | ms.reviewer | ms.date | ms.service | ms.topic | helpviewer_keywords | monikerRange | |
---|---|---|---|---|---|---|---|---|---|---|
Add a Root Node to JSON Output with the ROOT Option |
To add a single, top-level element to the JSON output of the FOR JSON clause, specify the ROOT option. |
jovanpop-msft |
jovanpop |
jroth |
03/06/2025 |
sql |
how-to |
|
=azuresqldb-current || >=sql-server-2016 || >=sql-server-linux-2017 || =azuresqldb-mi-current || =fabric |
[!INCLUDE sqlserver2016-asdb-asdbmi-asa-serverless-pool-only-fabricse-fabricdw]
To add a single, top-level element to the JSON output of the FOR JSON
clause, specify the ROOT
option.
If you don't specify the ROOT
option, the JSON output doesn't include a root element.
The following table shows the output of the FOR JSON
clause with and without the ROOT
option.
The examples in the following table assume that the optional RootName argument is empty. If you provide a name for the root element, this value replaces the value root
in the examples.
Without the ROOT
option:
{
<<json properties>>
}
[
<<json array elements>>
]
With the ROOT
option:
{
"root": {
<<json properties>>
}
}
{
"root": [
<< json array elements >>
]
}
Here's another example of a FOR JSON
clause with the ROOT
option. This example specifies a value for the optional RootName
argument.
Query
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH, ROOT('info')
Result
{
"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"
}
}]
}
Result (without root)
[{
"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"
}
}]
For a visual introduction to the built-in JSON support, see the following videos: