JSON 문자열을 이스케이프하는 방법
- 모드를 선택합니다: 이스케이프, 언이스케이프, JSON 문자열화, 문자열화된 JSON 파싱.
- 내용을 입력하거나 붙여넣으면 결과가 바로 표시됩니다. 이스케이프할 때는 앞뒤 따옴표를 붙일지, 비ASCII 문자를
\uXXXX형식으로 쓸지 선택할 수 있습니다. - 결과를 복사하거나 서로 바꾸기를 눌러 작업 방향을 뒤집고 왕복 변환 결과를 확인합니다.
JSON 이스케이프 시퀀스
| 문자 | 이스케이프 형식 |
|---|---|
큰따옴표 " | \" |
백슬래시 \ | \\ |
| 라인 피드(줄바꿈) | \n |
| 캐리지 리턴 | \r |
| 탭 | \t |
| 백스페이스, 폼 피드 | \b, \f |
| 기타 제어 문자 U+0000–U+001F | \u0000 … \u001f |
| 모든 문자(선택 사항) | \uXXXX, 예: é → \u00e9, 😀 → \ud83d\ude00 |
슬래시 /(선택 사항) | \/ |
JSON 문자열은 항상 큰따옴표를 사용하므로 작은따옴표는 이스케이프할 필요가 없습니다.
문자열화된 JSON
문자열화된 JSON은 JSON 문자열 안에 저장된 JSON 문서입니다. 예를 들어 "payload": "{\"id\":7}" 같은 API 필드나 데이터베이스 열, 환경 변수, 로그 줄에 저장된 JSON이 여기에 해당합니다. JSON 문자열화는 문서로부터 이런 문자열을 만들고, 문자열화된 JSON 파싱은 두 번 문자열화된 경우에도 이를 풀어 결과를 보기 좋게 포맷합니다.
- JavaScript:
JSON.stringify(text)로 이스케이프,JSON.parse(literal)로 언이스케이프합니다. - Python:
json.dumps(text)와json.loads(literal). - PHP:
json_encode($text)와json_decode($literal).
자주 묻는 질문
JSON에서 반드시 이스케이프해야 하는 문자는 무엇인가요?
큰따옴표, 백슬래시, 그리고 줄바꿈이나 탭 같은 제어 문자(U+0000~U+001F)뿐입니다. 그 밖의 문자는 é, 中, 이모지, 한글을 포함해 UTF-8 JSON에 그대로 넣을 수 있습니다.
‘한글’ 대신 \ud55c\uae00 같은 코드가 보이는 이유는 무엇인가요?
일부 프로그램은 ASCII가 아닌 모든 문자를 \uXXXX 이스케이프로 기록합니다. 두 형태는 같은 의미이며, ‘언이스케이프’ 모드를 사용하면 다시 읽을 수 있는 텍스트로 바뀝니다.
이스케이프와 문자열화는 어떻게 다른가요?
이스케이프는 임의의 텍스트를 JSON 문자열 리터럴로 바꿉니다. 문자열화는 먼저 입력이 유효한 JSON인지 확인하고 압축한 다음 이스케이프하므로, 결과는 JSON 문서를 담은 문자열이 됩니다.
바깥쪽 따옴표 없이도 문자열을 언이스케이프할 수 있나요?
네. 앞뒤 따옴표가 있든 없든 그대로 붙여넣으세요. 이스케이프되지 않은 따옴표나 실제 줄바꿈이 섞여 있어도 처리됩니다.