본문으로 건너뛰기
Case Converter Online
ko

JSON 문자열 변환 (JSON stringify)

어떤 텍스트나 JSON이든 붙여넣으면 이스케이프된 JSON 문자열 하나로 돌려줍니다. 다른 JSON 문서, 설정 값, 코드 한 줄 안에 바로 넣을 수 있습니다.

텍스트나 JSON을 붙여넣거나 예시를 누르세요. 모든 작업은 브라우저에서 실행됩니다.

이 도구가 하는 일

JSON 문자열은 큰따옴표로 감싼 텍스트로, 일부 문자를 백슬래시와 함께 씁니다. 큰따옴표는 \", 백슬래시는 \\, 줄바꿈은 \n, 탭은 \t가 됩니다. 이 JSON 문자열 변환 도구는 입력한 텍스트를 그런 문자열로 써 줍니다. 자바스크립트에서 문자열을 JSON.stringify에 넘겼을 때와 같은 결과입니다.

JSON 문서 하나가 다른 JSON 문서나 따옴표, 줄바꿈이 섞인 텍스트를 필드 하나에 담아야 할 때 필요합니다. 이스케이프를 손으로 쓰면 느리고 실수하기 쉽습니다. 백슬래시 하나만 빠져도 페이로드 전체가 깨집니다.

사용 방법

  1. 왼쪽 입력란에 텍스트나 JSON을 붙여넣거나, 파일 열기 또는 예시를 누릅니다.
  2. 입력하는 동안 오른쪽에 이스케이프된 문자열이 나타납니다.
  3. 필요한 옵션을 고릅니다.
    • JSON 먼저 압축은 올바른 JSON의 서식을 없앤 뒤 이스케이프합니다. 기본으로 켜져 있습니다.
    • 따옴표로 감싸기는 바깥 큰따옴표를 붙입니다. 이미 따옴표가 있는 자리에 붙여넣을 때는 끄세요.
    • 비ASCII 문자를 \u로 이스케이프는 한글, 악센트 문자, 기호 등 ASCII가 아닌 문자를 \u 코드로 씁니다.
  4. 복사를 누르거나, 다운로드로 결과를 텍스트 파일로 저장합니다.

입력란 아래 줄에는 입력이 올바른 JSON이었는지와 결과의 글자 수가 표시됩니다.

예시

따옴표와 줄바꿈이 있는 일반 텍스트는

He said "hello"
then left.

다음과 같이 바뀝니다.

"He said \"hello\"\nthen left."

JSON 먼저 압축을 켠 상태에서 서식이 있는 JSON은

{
  "name": "Ada",
  "tags": ["admin", "dev"]
}

다음과 같이 바뀝니다.

"{\"name\":\"Ada\",\"tags\":[\"admin\",\"dev\"]}"

JSON 먼저 압축을 끄면 들여쓰기가 그대로 남아 이스케이프됩니다. { 다음에 줄바꿈, 그리고 "name": "Ada"가 오는 입력은 이렇게 됩니다.

"{\n  \"name\": \"Ada\"\n}"

Windows 경로는 백슬래시가 모두 두 개씩 됩니다.

"C:\\Users\\Ada\\notes.txt"

비ASCII 문자

JSON은 문자열 안에 모든 유니코드 문자를 허용하므로 Café 東京은 그대로 올바른 값입니다. 한글도 마찬가지로 그대로 둬도 됩니다.

"Café 東京"

하지만 오래된 시스템, 일부 터미널, 바이트 수가 제한된 필드는 ASCII만 받습니다. 비ASCII 문자를 \u로 이스케이프를 켜면 같은 텍스트가 이렇게 바뀝니다.

"Caf\u00e9 \u6771\u4eac"

한글도 한 글자당 \u 코드 하나가 됩니다. 이 도구로 한글을 변환하면 "\ud55c\uae00"이 나옵니다.

대부분의 이모지처럼 기본 다국어 평면(BMP) 밖에 있는 문자는 코드 두 개(서로게이트 쌍)로 씁니다. 웃는 얼굴 이모지는 "\ud83d\ude00"이 됩니다. 어떤 JSON 파서든 이를 원래 문자로 되돌립니다.

바깥 따옴표 없이

문자열이 템플릿, 폼 필드, 이미 있는 따옴표 쌍 안으로 들어갈 때는 따옴표로 감싸기를 끄세요. Tab 뒤에 탭 문자, 그리고 here가 오는 텍스트는 이렇게 나옵니다.

Tab\there

작동 원리

이 도구는 브라우저에 내장된 JSON.stringify를 사용하므로 이스케이프가 JSON 표준을 정확히 따릅니다. 그 전에 JSON 먼저 압축이 켜져 있고 입력이 {나 [로 시작하면 JSON으로 읽어 봅니다. 성공하면 공백 없이 다시 출력하며, 숫자는 입력한 모습 그대로 유지합니다. 그다음 전체 텍스트를 문자열 하나로 이스케이프합니다. 서버로는 아무것도 보내지 않습니다.

팁과 한계

  • 결과는 JSON 문자열입니다. 자바스크립트 템플릿 리터럴이나 셸 문자열이 아닙니다. 셸이나 일부 언어에서는 그 위에 각자의 따옴표 처리가 더 필요합니다.
  • 결과를 한 번 더 stringify하면 이중 이스케이프된 문자열이 됩니다. API가 그런 형태를 요구할 때도 있지만, 대개는 버그의 신호입니다.
  • 아주 큰 입력도 괜찮습니다. 작업은 기기에서 이루어지며 속도는 기기 성능에 달려 있습니다.

다른 방법

JavaScript. JSON.stringify(text)가 이스케이프된 문자열을 돌려줍니다. 객체를 문자열로 넣으려면 JSON.stringify(JSON.stringify(obj))를 쓰세요.

Python. 문자열에 json.dumps(text)를 쓰면 같은 결과가 나옵니다. 기본값은 한글을 포함한 비ASCII 문자를 이스케이프하므로, 그대로 두려면 ensure_ascii=False를 넘기세요.

jq. jq -Rs . file.txt는 파일 전체를 원시 텍스트로 읽어 JSON 문자열 하나로 출력합니다.

관련 도구

이스케이프된 문자열을 읽을 수 있는 텍스트나 JSON으로 되돌리려면 JSON 이스케이프 해제를 쓰세요. JSON을 먼저 검사하거나 보기 좋게 정리하려면 JSON 포매터를, 스프레드시트에서 JSON을 만들려면 CSV JSON 변환기를 쓰세요.

JSON Stringify 자주 묻는 질문

JSON stringify는 무슨 뜻인가요?

값을 JSON 텍스트로 쓰는 것을 말합니다. 텍스트에 적용하면 JSON 문자열이 됩니다. 텍스트를 큰따옴표로 감싸고, 안의 따옴표, 백슬래시, 줄바꿈, 탭을 이스케이프해서 올바른 JSON이 되게 합니다.

JSON을 왜 JSON 문자열 안에 넣나요?

JSON 문서 전체를 문자열 필드 하나로 저장하거나 보내는 시스템이 있기 때문입니다. 메시지 큐, 웹훅 페이로드, 로그 한 줄, 환경 변수, 일부 데이터베이스 컬럼이 그렇습니다. 이때 안쪽 JSON은 이스케이프해야 들어갑니다.

JSON 먼저 압축 옵션은 무엇을 하나요?

입력이 올바른 JSON이면 이스케이프하기 전에 공백과 줄바꿈을 없앱니다. 결과가 짧아지고, 들여쓰기에서 나온 \n 이스케이프도 생기지 않습니다. 입력이 올바른 JSON이 아니면 입력한 그대로 이스케이프합니다.

원래대로 되돌리려면 어떻게 하나요?

JSON 이스케이프 해제 도구(JSON Unstringifier)를 쓰세요. 바깥 따옴표가 있든 없든 이스케이프된 문자열을 받아 원래 텍스트나 JSON으로 돌려줍니다.

코드와 데이터 도구 더 보기

전체 도구 보기