FOR JSON이 특수 문자 및 제어 문자를 이스케이프 처리하는 방법(SQL Server)How FOR JSON escapes special characters and control characters (SQL Server)

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 SQL Server SELECTFOR JSON 절이 특수 문자를 이스케이프 처리하고 JSON 출력에서 제어 문자를 표시하는 방법에 대해 설명합니다.This topic describes how the FOR JSON clause of a SQL Server SELECT statement escapes special characters and represents control characters in the JSON output.

중요

이 페이지에서는 Microsoft SQL Server에서 기본 제공되는 JSON 지원에 대해 설명합니다.This page describes the built-in support for JSON in Microsoft SQL Server. JSON에서 이스케이프 및 인코딩에 대한 일반적인 정보는 JSON RFC - http://www.ietf.org/rfc/rfc4627.txt의 섹션 2.5를 참조하세요.For general info about escaping and encoding in JSON, see Section 2.5 of the JSON RFC - http://www.ietf.org/rfc/rfc4627.txt.

특수 문자를 이스케이프 처리Escaping of special characters

원본 데이터에 특수 문자가 포함된 경우 FOR JSON 절은 다음 표에 나와 있는 것처럼 \를 사용하여 JSON 출력의 특수 문자를 이스케이프 처리합니다.If the source data contains special characters, the FOR JSON clause escapes them in the JSON output with \, as shown in the following table. 속성 이름과 해당 값에서 모두 특수 문자가 이와 같이 이스케이프 처리됩니다.This escaping occurs both in the names of properties and in their values.

특수 문자Special character 이스케이프 처리된 출력Escaped output
따옴표(")Quotation mark (") \"\"
백슬래시(\)Backslash (\) \\
슬래시(/)Slash (/) \/
백스페이스Backspace \b\b
용지 공급Form feed \f\f
줄 바꿈New line \n
캐리지 리턴Carriage return \r\r
가로 탭Horizontal tab \t\t

제어 문자Control characters

원본 데이터에 제어 문자가 포함된 경우 FOR JSON 절은 다음 표에 나와 있는 것처럼 JSON 출력의 제어 문자를 \u<code> 형식으로 인코딩합니다.If the source data contains control characters, the FOR JSON clause encodes them in the JSON output in \u<code> format, as shown in the following table.

제어 문자Control character 인코딩된 출력Encoded output
CHAR(0)CHAR(0) \u0000\u0000
CHAR(1)CHAR(1) \u0001\u0001
CHAR(31)CHAR(31) \u001f\u001f

예제Example

다음은 특수 문자와 제어 문자를 모두 포함하는 원본 데이터에 대한 FOR JSON 출력의 예입니다.Here's an example of the FOR JSON output for source data that includes both special characters and control characters.

쿼리:Query:

SELECT  
  'VALUE\    /  
  "' as [KEY\/"],  
  CHAR(0) as '0',  
  CHAR(1) as '1',  
  CHAR(31) as '31'  
FOR JSON PATH  

결과:Result:

{
    "KEY\\\t\/\"": "VALUE\\\t\/\r\n\"",
    "0": "\u0000",
    "1": "\u0001",
    "31": "\u001f"
}

SQL Server의 기본 제공 JSON 지원에 대한 자세한 정보Learn more about the built-in JSON support in SQL Server

많은 특정 솔루션, 사용 사례 및 권장 사항은 Microsoft 프로그램 관리자인 Jovan Popovic이 제공하는 SQL Server 및 Azure SQL Database의 기본 제공 JSON 지원에 대한 블로그 게시물을 참조하세요.For lots of specific solutions, use cases, and recommendations, see the blog posts about the built-in JSON support in SQL Server and in Azure SQL Database by Microsoft Program Manager Jovan Popovic.

관련 항목:See Also

FOR JSON을 사용하여 쿼리 결과를 JSON으로 서식 지정(SQL Server)Format Query Results as JSON with FOR JSON (SQL Server)
FOR 절FOR Clause