ROOT 옵션을 사용하여 JSON 출력에 루트 노드 추가(SQL Server)

적용 대상: SQL Server 2016(13.x) 이상

단일 최상위 요소를 FOR JSON 절의 JSON 출력에 추가하려면 ROOT 옵션을 사용합니다.

ROOT 옵션을 지정하지 않은 경우 JSON 출력에는 루트 요소가 포함되지 않습니다.

예제

다음 표에는 ROOT 옵션을 사용한 경우와 사용하지 않은 경우 FOR JSON 절의 출력이 나와 있습니다.

다음 표의 예에서는 선택적 RootName 인수가 비어 있다고 가정합니다. 루트 요소의 이름을 입력하면 예의 root 값이 이 값으로 바뀝니다.

ROOT 옵션을 사용하지 않는 경우

{  
   <<json properties>>  
}  
[  
   <<json array elements>>  
]  

ROOT 옵션을 사용하는 경우

{   
  "root": {  
   <<json properties>>  
 }  
}  
{   
  "root": [  
   << json array elements >>  
  ]  
}  

아래에는 ROOT 옵션을 사용한 FOR JSON 절의 다른 예가 나와 있습니다. 이 예에서는 선택적 RootName 인수의 값을 지정합니다.

쿼리

SELECT TOP 5   
       BusinessEntityID As Id,  
       FirstName, LastName,  
       Title As 'Info.Title',  
       MiddleName As 'Info.MiddleName'  
   FROM Person.Person  
   FOR JSON PATH, ROOT('info')

결과

{
	"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"
		}
	}]
}

결과(루트 없이)

[{
	"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"
	}
}]

SQL Server 및 Azure SQL Database에서 JSON에 대한 자세한 정보

Microsoft 비디오

참고

이 섹션의 일부 비디오 링크는 현재 작동하지 않을 수 있습니다. Microsoft는 이전에 Channel 9에 있던 콘텐츠를 새 플랫폼으로 마이그레이션하고 있습니다. 비디오가 새 플랫폼으로 마이그레이션되면 링크를 업데이트할 예정입니다.

SQL Server 및 Azure SQL Database에서 기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.

참고 항목

FOR 절(Transact-SQL)