JSON에서 대괄호 제거 - WITHOUT_ARRAY_WRAPPER 옵션
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics (서버리스 SQL 풀 한정)
기본적으로 FOR JSON 절의 JSON 출력을 둘러싸고 있는 대괄호를 제거하려면 WITHOUT_ARRAY_WRAPPER 옵션을 지정합니다. 단일 행 결과와 함께 이 옵션을 사용하면 단일 요소의 배열 대신에 단일 JSON 개체를 출력으로 생성할 수 있습니다.
여러 행 결과와 함께 이 옵션을 사용하는 경우 여러 요소와 누락된 대괄호로 인해 결과 출력이 유효한 JSON이 아닙니다.
예제(단일 행 결과)
다음 예제에는 WITHOUT_ARRAY_WRAPPER 옵션을 사용한 경우와 사용하지 않은 경우 FOR JSON 절의 출력이 나와 있습니다.
쿼리
SELECT 2015 as year, 12 as month, 15 as day
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
WITHOUT_ARRAY_WRAPPER 옵션을 사용한 결과
{
"year": 2015,
"month": 12,
"day": 15
}
WITHOUT_ARRAY_WRAPPER 옵션을 사용하지 않은(기본값) 결과
[{
"year": 2015,
"month": 12,
"day": 15
}]
예제(여러 행 결과)
다음은 WITHOUT_ARRAY_WRAPPER 옵션 유무에 관계없는 FOR JSON 절의 또 다른 예입니다. 이 예제에서는 여러 행 결과를 생성합니다. 여러 요소와 누락된 대괄호로 인해 출력이 유효한 JSON이 아닙니다.
쿼리
SELECT TOP 3 SalesOrderNumber, OrderDate, Status
FROM Sales.SalesOrderHeader
ORDER BY ModifiedDate
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
WITHOUT_ARRAY_WRAPPER 옵션을 사용한 결과
{
"SalesOrderNumber": "SO43662",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43661",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43660",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}
WITHOUT_ARRAY_WRAPPER 옵션을 사용하지 않은(기본값) 결과
[{
"SalesOrderNumber": "SO43662",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43661",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43660",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}]
SQL Server 및 Azure SQL 데이터베이스에서의 JSON에 대해 알아보기
Microsoft 비디오
참고 항목
이 섹션의 일부 비디오 링크는 현재 작동하지 않을 수 있습니다. Microsoft는 이전에 Channel 9에 있던 콘텐츠를 새 플랫폼으로 마이그레이션하고 있습니다. 비디오가 새 플랫폼으로 마이그레이션되면 링크를 업데이트할 예정입니다.
SQL Server 및 Azure SQL 데이터베이스에서 기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.