다음을 통해 공유


JSON에서 대괄호 제거 - WITHOUT_ARRAY_WRAPPER 옵션

적용 대상: SQL Server 2016(13.x) 이상 버전 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics(서버리스 SQL 풀에만 해당)Microsoft FabricWarehouse의 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 Database 엔진의 JSON에 대해 자세히 알아보기

Microsoft 비디오

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