JSON 이스케이프
텍스트나 JSON을 브라우저에서 유효한 JSON 문자열 리터럴로 이스케이프하는 무료 웹 도구. 따옴표, 줄바꿈, 탭, 유니코드, 슬래시 처리. 100% 비공개, 업로드 없이 즉시.
옵션
JSON 이스케이프란?
JSON 이스케이프는 원시 문자열을 JSON 문서 안에 안전하게 넣을 수 있는 형태로 변환하는 과정입니다. JSON에는 구조적 의미를 가진 문자가 소수 있습니다 — 큰따옴표는 문자열을 구분하고 백슬래시는 이스케이프 시퀀스를 시작합니다 — 그리고 문자열 안에 그대로 나타날 수 없는 제어 문자(줄바꿈, 탭)도 있습니다. 이스케이프는 이들 각각을 안전한 두 글자 시퀀스(\", \\, \n, \t)나 \uXXXX 유니코드 이스케이프로 바꿔서 결과 문자열이 어디서든 깔끔하게 파싱되게 합니다.
JSON 이스케이프는 생각보다 자주 필요합니다. 가장 흔한 경우는 JSON-in-JSON입니다: 웹훅 봉투, 메시지 큐 페이로드, 감사 로그가 요청 본문을 문자열 필드로 저장하는데, 이는 내부 JSON을 할당하기 전에 이스케이프해야 함을 뜻합니다. 또 다른 경우는 JSON 설정을 손으로 작성할 때입니다: 여러 줄 셸 스크립트, SQL 쿼리, 코드 조각을 단일 JSON 값에 붙여넣으려면 모든 줄바꿈을 \n으로 바꿔야 합니다. 세 번째는 curl 같은 도구에서 REST 요청 본문을 손으로 만들 때로, 따옴표가 있는 JSON 문자열이 셸과 HTTP 계층을 통과하려면 이스케이프해야 합니다.
이 도구는 단순한 이스케이퍼에 비해 세 가지 차별점이 있습니다. 첫째, 정확한 JSON 사양 규칙에 기반합니다 — 준수 직렬화기가 쓰는 것과 동일한 로직 — 그래서 출력이 손실 없이 왕복합니다: 여기서 이스케이프하고, 어디서든 파싱하면 바이트를 그대로 돌려받습니다. 둘째, 선택적 ASCII 안전 모드는 모든 비ASCII 문자(surrogate pair로 처리되는 astral 이모지 포함)를 \uXXXX로 변환하여 UTF-8을 신뢰할 수 없는 시스템에 대응합니다. 셋째, 모든 것이 100% 브라우저에서 실행되므로 PII, 토큰, 비밀 정보가 자주 담기는 페이로드가 서버에 전혀 닿지 않습니다. 과정을 되돌리려면 JSON Unescape 도구를, JSON을 먼저 검증하려면 JSON Formatter를 사용하세요.
// Input text
She said "hi"
then left.
// Escaped (Wrap on) — identical to JSON.stringify(input)
"She said \"hi\"\nthen left."
// Escaped (Wrap off) — just the body, for hand-built JSON
She said \"hi\"\nthen left.
// JSON-in-JSON
{"a":1} -> "{\"a\":1}" -> {"payload": "{\"a\":1}"} 주요 기능
사양에 정확한 이스케이프
JSON 사양의 정확한 규칙에 기반합니다 — 따옴표, 백슬래시, 줄바꿈, 탭, 캐리지 리턴, 제어 문자가 준수 직렬화기와 동일하게 이스케이프됩니다. 출력은 어떤 JSON 파서를 통해서도 손실 없이 왕복합니다.
따옴표 포함 또는 미포함 출력
Wrap in double quotes를 켜면 완전한 JSON 문자열 리터럴(JSON.stringify와 동일)을, 끄면 손으로 작성한 JSON 문서에서 따옴표를 직접 입력할 때를 위한 이스케이프된 본문만 줍니다.
ASCII 안전 \uXXXX 모드
선택적으로 U+007F를 초과하는 모든 문자를 유니코드 이스케이프로 변환하며, 이모지 같은 astral 문자는 올바른 surrogate pair로 처리합니다. 출력은 순수 ASCII로, UTF-8을 잘못 처리하는 레거시 파이프라인에 안전합니다.
HTML 안전 슬래시 이스케이프
Escape forward slash는 /를 \/로 바꿔 </script> 시퀀스를 무력화하므로, 태그를 조기에 닫지 않고 HTML <script> 태그 안에 JSON을 인라인할 수 있습니다. 다른 모든 곳에서 깔끔한 출력을 위해 기본 꺼짐입니다.
왕복 검증을 위한 Swap
Swap direction 버튼 하나로 그 자리에서 unescape 모드로 전환하고 출력을 입력으로 되먹여, 배포 전에 escape → unescape가 원래 텍스트를 바이트 단위로 돌려주는지 확인할 수 있습니다.
100% 브라우저 기반 프라이버시
모든 이스케이프가 클라이언트 측에서 실행됩니다 — 페이로드(PII, 토큰, 비밀 정보)가 브라우저를 떠나지 않습니다. 네트워크 탭에서 확인하세요: 붙여넣어도 요청 0건. 온라인 도구에서 민감한 데이터를 이스케이프하는 유일하게 안전한 방법입니다.
예시
JSON 안에 JSON 넣기 (JSON-in-JSON)
{"event":"signup","user":{"id":42,"name":"Alice"}} 이 객체를 이스케이프하여 다른 JSON 문서 안의 문자열 값으로 넣을 수 있게 합니다 — 예를 들어 웹훅 페이로드 필드나 Kafka 메시지 봉투. Wrap을 켜면 출력이 콜론 바로 뒤에 붙여넣을 수 있는 형태로 준비됩니다.
여러 줄 코드 조각을 설정 필드로
function greet(name) {
return `Hello, ${name}!`;
} 여러 줄 JS 함수를 한 줄짜리 JSON 문자열로 바꿉니다. 줄바꿈은 \n이 되고 백틱 템플릿은 그대로 유지됩니다 — 파일을 깨뜨리지 않고 JSON 설정 값에 붙여넣으세요.
따옴표와 탭이 있는 텍스트
She said "hello" then left.
큰따옴표는 \"로, 탭은 \t로 이스케이프되어 어떤 JSON 파서, 로그 줄, REST 요청 본문에든 안전하게 넣을 수 있습니다.
레거시 시스템을 위한 ASCII 안전 출력
Price: 9.99€ — café société
Escape non-ASCII를 켜서 €와 악센트 글자를 \uXXXX로 변환합니다. 결과는 순수 ASCII로, 전송 중 UTF-8을 망가뜨리는 시스템에서도 안전합니다.
사용 방법
- 1
텍스트나 JSON 붙여넣기
입력 필드에 무엇이든 입력하거나 붙여넣으세요 — JSON 객체, 코드 조각, 로그 줄, 일반 텍스트. 이스케이프된 결과가 즉시 나타납니다. 'Load example'을 클릭하면 JSON-in-JSON 페이로드나 여러 줄 함수 같은 샘플을 시도할 수 있습니다.
- 2
이스케이프 옵션 선택
완전한 JSON 문자열 리터럴(JSON.stringify와 동일)을 원하면 'Wrap in double quotes'를 켜고, 이스케이프된 본문만 원하면 끄세요. 순수 ASCII \uXXXX 출력을 위해 'Escape non-ASCII'를 토글하고, HTML <script> 태그 안에 JSON을 인라인할 때 'Escape forward slash'를 토글하세요.
- 3
이스케이프된 문자열 복사
Copy를 클릭하면 JSON 문서, REST 요청 본문, 설정 파일에 붙여넣을 수 있는 결과를 가져옵니다. Swap direction을 클릭하면 unescape 모드로 전환되어 손실 없는 왕복을 검증할 수 있습니다.
흔한 이스케이프 함정
이중 이스케이프 (이미 이스케이프된 텍스트를 또 이스케이프)
이스케이프를 두 번 실행하면 \n이 \\n이 되고 \"가 \\\"가 되어, 소비자는 줄바꿈 대신 리터럴 백슬래시-n을 보게 됩니다. 이는 보통 텍스트가 상류에서 이미 JSON 이스케이프되었을 때 발생합니다. 먼저 unescape(Swap direction)로 확인한 뒤 정확히 한 번만 이스케이프하세요.
Input already escaped: line1\nline2 Escaped again -> line1\\nline2 (literal backslash-n)
Raw input: line1 line2 Escaped once -> line1\nline2 (real newline encoded)
둘러싸는 따옴표 잊기
Wrap을 끄면 완전한 JSON 문자열이 아니라 이스케이프된 본문만 얻습니다. 그것을 값이 기대되는 곳에 바로 붙여넣으면 따옴표가 빠져 유효하지 않은 JSON이 됩니다. Wrap을 켜 두거나 따옴표를 직접 입력해야 합니다.
{"msg": hello \"world\"}
// Missing quotes around the value -> invalid JSON {"msg": "hello \"world\""}
// Wrap on supplies the quotes -> valid JSON 비ASCII를 불필요하게 과도 이스케이프
소비자가 UTF-8을 잘 처리하는데도 Escape non-ASCII를 켜면 출력만 부풀고 가독성이 떨어집니다 — café가 아무 이유 없이 caf\u00e9가 됩니다. 특정 레거시 시스템이 순수 ASCII를 요구하지 않는 한 이 옵션은 꺼 두세요.
café -> caf\u00e9 (no downstream need; just noise)
café -> café (valid JSON, readable, smaller)
일반적인 사용 사례
- JSON-in-JSON 웹훅 페이로드
- 요청 본문을 이스케이프하여 웹훅 봉투, Kafka 메시지, 감사 로그 안의 문자열 필드로 저장할 수 있게 합니다. Wrap을 켜 두면 출력이 바깥 문서의 키에 할당할 준비가 됩니다.
- 설정 안의 여러 줄 조각
- 여러 줄 셸 스크립트, SQL 쿼리, 코드 조각을 단일 JSON 문자열 값으로 바꿉니다. 모든 줄바꿈이 \n이 되어 JSON 설정 파일이 한 줄에서 유효하게 유지됩니다.
- 손으로 만든 REST 요청 본문
- JSON 문자열을 이스케이프하여 curl --data 인수나 HTTP 클라이언트에 넣으면, 따옴표와 줄바꿈이 셸과 네트워크를 통과하면서 요청을 깨뜨리지 않습니다.
- 로그 안전 문자열 인코딩
- 사용자가 제공한 내용을 구조화된 로그 줄에 기록하기 전에 이스케이프하여, 삽입된 따옴표나 줄바꿈이 로그 형식이나 다운스트림 JSON 로그 파서를 손상시키지 않게 합니다.
- ASCII 전용 레거시 통합
- 전송 중 UTF-8을 망가뜨리는 SOAP 게이트웨이, 이메일 헤더, 오래된 시스템을 위해 순수 ASCII \uXXXX 출력을 만들면서도, 현대 JSON 파서로 완전히 디코딩 가능하게 유지합니다.
- HTML 안에 JSON 인라인
- 슬래시를 이스케이프하여 JSON 덩어리를 서버 렌더링 페이지의 <script> 태그 안에 직접 넣되, 데이터 안의 </script>가 태그를 조기에 닫지 않게 합니다.
기술 세부 사항
- 이스케이프 알고리즘
- 이 도구는 JSON 사양의 문자열 규칙으로 입력을 직렬화합니다: U+0022 (") → \", U+005C (\) → \\, U+0008 → \b, U+000C → \f, U+000A → \n, U+000D → \r, U+0009 → \t, 그리고 U+0020 미만의 다른 모든 문자 → \u00XX. Wrap을 켜면 둘러싸는 큰따옴표가 포함되고, 끄면 제거됩니다. 이는 준수 직렬화기의 출력과 정확히 일치하여 손실 없는 왕복을 보장합니다.
- 유니코드와 Surrogate Pair
- 기본적으로 U+007F를 초과하는 문자는 JSON이 허용하는 리터럴 UTF-8로 방출됩니다. Escape non-ASCII를 켜면 그런 각 문자가 UTF-16 코드 단위를 사용해 \uXXXX로 변환되고, Basic Multilingual Plane 밖의 문자(이모지, 희귀 문자)는 두 \uXXXX 이스케이프의 surrogate pair로 인코딩됩니다 — 예를 들어 😀 (U+1F600)는 \ud83d\ude00이 되며, 이는 JSON 직렬화기가 생성하는 표현과 같습니다.
- 슬래시와 HTML 맥락
- JSON은 /를 이스케이프할 필요가 없으므로 기본적으로 보존됩니다. Escape forward slash를 켜면 모든 /가 \/가 됩니다. 이렇게 할 유일한 실용적 이유는 HTML 임베딩입니다: <script> 태그 안에서는 리터럴 부분 문자열 </script>가 JSON 맥락과 무관하게 태그를 닫으므로, 슬래시를 <\/script>로 이스케이프하면 인라인된 JSON을 온전하게 유지하면서 사양에 맞게 유효합니다.
모범 사례
- 완전한 리터럴을 위해 Wrap 켜 두기
- 코드에서 할당하거나 JSON에서 콜론 뒤에 붙여넣을 값이 필요하면 Wrap in double quotes를 켜 두세요 — 출력은 JSON.stringify와 동일한 완전하고 파싱 가능한 JSON 문자열입니다. 둘러싸는 따옴표를 직접 손으로 입력할 때만 끄세요.
- 필요하지 않으면 유니코드 이스케이프 끄기
- 원시 UTF-8은 유효한 JSON이며 훨씬 읽기 쉽습니다. Escape non-ASCII는 UTF-8을 잘못 처리하는 특정 다운스트림 시스템(레거시 SOAP, 일부 로그 파이프라인, ASCII 전용 소스 파일)에만 켜세요. 기본적으로 전부 이스케이프하면 출력이 더 지저분해질 뿐입니다.
- HTML 임베딩에만 슬래시 이스케이프
- 슬래시 이스케이프가 중요한 곳은 정확히 한 군데뿐입니다: HTML <script> 태그 안에 인라인된 JSON. 그 맥락 밖에서는 이점 없이 혼잡함만 더하므로 REST 본문, 설정 파일, 메시지 페이로드에서는 꺼 두세요.
- Swap으로 왕복 검증
- 이스케이프된 데이터를 파이프라인에 보내기 전에 Swap direction을 클릭하여 unescape하고 원래 텍스트를 돌려받는지 확인하세요. 이는 우발적 이중 이스케이프 — \n을 의도한 곳에 \\n이 나타나는 흔한 원인 — 를 잡아냅니다. JSON Unescape 도구로 언제든 되돌리세요.
자주 묻는 질문
이 JSON 이스케이프 도구는 무엇을 하나요?
JSON 이스케이프와 JSON stringify의 차이는 무엇인가요?
제 데이터가 어딘가로 업로드되나요?
\uXXXX (escape non-ASCII) 옵션은 언제 필요한가요?
다른 JSON 문자열 안에 JSON 객체를 넣으려면(JSON-in-JSON) 어떻게 하나요?
Escape forward slash (\/) 옵션은 무엇을 하나요?
줄바꿈, 탭, 제어 문자를 올바르게 처리하나요?
관련 도구
모든 도구 보기 →Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
Base64 이미지 변환기 (온라인)
인코딩 & 포매팅
Base64 문자열이나 데이터 URI를 온라인 브라우저에서 이미지로 디코딩합니다. 미리보고, 치수와 MIME을 읽은 뒤 PNG, JPG, GIF, SVG로 다운로드하세요. 업로드 없음.
CSV to JSON 변환기 (CSV to JSON Converter)
인코딩 & 포매팅
브라우저에서 CSV를 JSON으로 변환합니다. RFC 4180, 타입 추론, 헤더 행, 큰 정수 안전 처리. 100% 비공개, 업로드 없음.
HTML to Markdown 변환기
인코딩 & 포매팅
브라우저에서 HTML을 깔끔한 Markdown으로 변환 — GFM 테이블·작업 목록·링크, ATX/Setext와 인라인·참조 링크 선택. 웹 이전·LLM 입력에 적합. 100% 비공개.
이미지 Base64 변환기 (온라인)
인코딩 & 포매팅
이미지를 온라인 브라우저에서 Base64 데이터 URI로 변환합니다 — PNG, JPG, SVG, ICO. HTML, CSS, Markdown, JSON 출력을 복사하세요. 100% 비공개, 업로드 없음.
JSON Diff 비교
인코딩 & 포매팅
두 JSON 파일을 브라우저에서 즉시 Diff 비교하세요. 나란히 보기 하이라이팅, RFC 6902 JSON Patch 출력, 타임스탬프·ID 같은 노이즈 필드 무시. 비공개, 업로드 없음.