JSON 정리 사용법
- JSON을 입력 칸에 붙여 넣습니다.
- 들여쓰기를 2칸, 4칸, 탭 가운데 고릅니다. 처음에는 2칸입니다.
- 정리를 누르면 값마다 줄을 나눠 보여 주고, 압축을 누르면 공백과 줄바꿈을 모두 없앤 한 줄로 만듭니다.
- 결과는 복사 단추로 가져갑니다.
두 단추 모두 문법을 함께 검사합니다. 오류가 있으면 결과 대신 첫 오류의 줄과 칸과 이유를 보여 주고, 입력 칸에서 그 글자에 표시를 합니다. 예를 들어 마지막 값 뒤에 쉼표가 남은 {"a":1,}을 넣으면 「1줄 8칸: 쉼표 뒤에 값이 없습니다」가 나옵니다. 오류가 없으면 {"a":1,"b":[1,2]}는 2칸 들여쓰기로 7줄이 됩니다. 그 자리를 고치고 다시 누르면 다음 오류가 있는지 봅니다.
한 줄로 길게 온 API 응답을 읽을 때, 설정 파일을 서버에 올리기 전에 문법이 맞는지 볼 때, 요청 본문에 넣으려고 JSON을 한 줄로 줄일 때 씁니다. 로그에 찍힌 JSON 한 줄을 사람이 읽을 수 있게 펼칠 때도 씁니다.
결과를 읽을 때는 값이 넣은 그대로인지 걱정하지 않아도 됩니다. 이 도구는 공백만 다시 쓰고 키 순서, 숫자 모양, 문자열 안의 글자는 바꾸지 않습니다. 정리한 뒤 들여쓰기를 바꾸면 다시 누르지 않아도 새 들여쓰기로 다시 정리합니다.
JSON 포맷터 규칙 · 정리와 압축
- 공백만 다시 씁니다. 정리와 압축은 키 순서, 값, 숫자 모양을 바꾸지 않습니다.
- 정리한 모양은 자바스크립트의
JSON.stringify(값, null, 2)와 같습니다. 키 뒤에는 쌍점과 빈칸 하나를 두고, 빈 객체와 빈 배열은{}·[]처럼 한 줄로 둡니다. - 정리한 결과를 다시 압축하면, 처음부터 공백이 없던 한 줄 JSON과 글자 하나까지 같아집니다.
- 문법 검사는 JSON 표준(RFC 8259)을 따릅니다. 주석, 끝 쉼표, 작은따옴표,
NaN·Infinity,01처럼 0으로 시작하는 수는 표준에 없어 오류로 봅니다. - 오류는 가장 앞에 있는 것 하나만 알려 줍니다. 줄은 줄바꿈(LF)으로 세고, 칸은 그 줄 앞에서부터 센 글자 위치입니다. 이모지처럼 컴퓨터 안에서 두 자리를 쓰는 글자도 1칸으로 셉니다.
- 붙여 넣을 수 있는 글은 5MB(UTF-8 기준)까지입니다. 글이 커서 0.3초 넘게 걸리면 누른 단추 안에 「처리 중」이 나오고, 그동안에도 쪽은 멈추지 않습니다. 글자 수가 100만이 넘는 글은 입력 칸에 표시를 하지 않고 줄과 칸 번호로만 알려 줍니다.
흔한 해석기와 다른 점
많은 도구가 JSON을 한 번 값으로 읽었다가(JSON.parse) 다시 글로 씁니다. 그러면 아래처럼 원문이 바뀝니다. 이 도구는 값을 되살리지 않고 원문을 한 글자씩 읽으며 공백만 고쳐 쓰므로 바뀌지 않습니다.
| 넣은 글 | 값으로 읽었다가 다시 쓰면 | 이 도구 |
|---|---|---|
12345678901234567890 | 12345678901234567000 (자릿수 손실) | 그대로 |
1.50 | 1.5 | 그대로 |
{"b":1,"10":2,"2":3} | {"2":3,"10":2,"b":1} (숫자 이름 키가 앞으로) | 순서 그대로 |
{"a":1,"a":2} | {"a":2} (겹친 키 하나만 남음) | 둘 다 남음 |
"caf\u00e9" | "café" (이스케이프가 풀림) | 그대로 |
주문 번호나 계좌 번호처럼 긴 숫자를 담은 응답을 다른 도구로 정리했다가 끝자리가 0으로 바뀌는 일이 있습니다. 표준 문서 RFC 8259 6절도 아주 큰 수는 프로그램마다 다르게 읽을 수 있다고 적고 있습니다.
근거: RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format, 2026년 10월 26일에 확인했습니다.
JSON 정리 예시 · API 응답 정리와 압축
아래 결과는 모두 이 도구에 넣어 나온 값입니다. 이름과 값은 만든 것입니다.
한 줄 API 응답 정리 (2칸 들여쓰기)
{"id":42,"name":"홍길동","tags":["관리자","개발"],"active":true,"point":null}
정리하면 10줄이 됩니다.
{
"id": 42,
"name": "홍길동",
"tags": [
"관리자",
"개발"
],
"active": true,
"point": null
}
이 결과를 다시 압축하면 처음 넣은 한 줄과 같은 69자로 돌아갑니다.
들여쓰기 비교
{"a":[1,{"b":2}]}(17자)를 정리하면 들여쓰기에 상관없이 8줄이 됩니다. 2칸이면 48자, 4칸이면 70자, 탭이면 37자입니다. 탭은 한 겹에 한 글자라 가장 짧고, 보는 프로그램의 탭 너비에 따라 넓게도 좁게도 보입니다.
자주 보는 오류와 화면 문구
| 넣은 글 | 화면에 나오는 오류 |
|---|---|
{"a":1,} | 1줄 8칸: 쉼표 뒤에 값이 없습니다 |
{'a':1} | 1줄 2칸: 키는 큰따옴표로 감싸야 합니다 |
{"name":'홍길동'} | 1줄 9칸: 문자열은 큰따옴표로 감싸야 합니다 |
{"a":NaN} | 1줄 6칸: JSON 값으로 읽을 수 없는 글자입니다 |
{"zip":01234} | 1줄 8칸: 숫자 형식이 맞지 않습니다 |
{"a":"hello} | 1줄 6칸: 문자열을 닫는 큰따옴표가 없습니다 |
{"a":1}{"b":2} | 1줄 8칸: JSON이 끝난 뒤에 글이 더 있습니다 |
우편번호처럼 0으로 시작하는 값은 "01234"처럼 문자열로 넣어야 합니다. JSON 줄이 여러 개 이어진 로그(한 줄에 객체 하나)는 한 줄씩 따로 넣으세요.
여러 줄 설정 파일의 오류
주석이 든 설정은 주석이 시작하는 자리를 짚습니다.
{
// 포트
"port": 8080
}
이 글을 넣으면 「2줄 3칸: JSON에는 주석을 쓸 수 없습니다」가 나옵니다. 아래처럼 한 줄 끝의 쉼표가 빠진 글은 빠진 줄이 아니라 다음 값이 시작하는 자리를 짚습니다.
{
"host": "localhost"
"port": 8080
}
결과는 「3줄 3칸: 값 사이에 쉼표가 없습니다」입니다. 2줄 끝에 쉼표를 더하면 됩니다.
JSON 검사 경계 사례 · 쉼표 · 따옴표 · 주석
- 쉼표가 빠진 오류는 한 줄 아래를 가리킵니다. 해석기는 다음 값을 만나고 나서야 쉼표가 없다는 것을 알기 때문입니다. 오류 줄이 멀쩡해 보이면 바로 윗줄의 끝을 보세요.
- 파이썬 사전을 그대로 붙여 넣으면 오류입니다.
{'ok': True, 'v': None}은 작은따옴표 때문에 「1줄 2칸: 키는 큰따옴표로 감싸야 합니다」가 먼저 나옵니다. 따옴표를 고쳐도True·None은 JSON 값이 아니므로true·null로 바꿔야 합니다. 파이썬에서는json.dumps로 바꾼 글을 넣으세요. - 끝 쉼표와 주석은 자바스크립트 코드나 일부 설정 파일(
tsconfig.json등)에서는 되지만 JSON 표준에서는 오류입니다. 이 도구는 고쳐 주지 않고 자리만 알려 줍니다. - 글 맨 앞의 보이지 않는 표시(BOM)도 오류로 봅니다. 메모장 같은 프로그램이 「UTF-8 BOM」으로 저장한 파일을 통째로 복사하면 맨 앞에 눈에 안 보이는 글자가 붙을 수 있습니다. 그러면 「1줄 1칸: JSON 값으로 읽을 수 없는 글자입니다」가 나옵니다. RFC 8259 8.1절은 JSON 글 앞에 이 표시를 붙이지 말라고 하고, 받는 쪽이 이 표시를 무시하는 것은 허용합니다. 이 도구는 무시하지 않고 오류로 봅니다. 맨 앞 글자를 지우거나 BOM 없는 UTF-8로 다시 저장하세요.
- 문자열 안의 줄바꿈: 값 안에 줄바꿈을 그대로 넣으면 「문자열을 닫는 큰따옴표가 없습니다」가 나오고 여는 따옴표 자리를 짚습니다. 줄바꿈은
\n으로 적어야 합니다. - 겹친 키는 오류로 보지 않습니다.
{"a":1,"a":2}는 표준이 막지 않아 두 키를 그대로 둡니다. 받는 프로그램이 어느 값을 쓸지는 프로그램마다 다릅니다. - 괄호가 아주 깊게 겹친 글은 정리하면 줄마다 들여쓰기가 쌓여 결과가 지나치게 커집니다. 그럴 때는 정리를 멈추고 압축을 쓰라고 알려 줍니다.
JSON 정리 자주 묻는 질문
붙여 넣은 JSON이 서버로 보내지나요?
아니요. 정리와 압축과 검사는 모두 이 브라우저 안에서 끝납니다. 붙여 넣은 글은 서버로 가지 않고 브라우저에도 저장하지 않습니다. 비밀 값이 섞인 설정을 넣어도 쪽을 닫으면 남지 않습니다. 이 도구는 공유 주소도 만들지 않습니다.
오류 위치의 칸 번호는 무엇을 세나요?
그 줄의 앞에서부터 몇 번째 글자인지입니다. 한글 한 글자, 이모지 하나도 1칸입니다. 오류는 가장 앞에 있는 것 하나만 알려 주므로, 고친 뒤 다시 누르면 다음 오류가 있는지 봅니다.
정리와 압축은 무엇이 다른가요?
정리는 사람이 읽기 좋게 줄과 들여쓰기를 넣고, 압축은 문자열 밖의 공백을 모두 없애 가장 짧게 만듭니다. 담긴 값은 둘이 같습니다. 위 API 응답 예시는 정리하면 103자, 압축하면 69자입니다.
틀린 곳을 자동으로 고쳐 주나요?
아니요. 첫 오류의 자리와 이유만 알려 주고 고치는 것은 맡깁니다. 자동으로 고치면 빠진 쉼표 자리를 잘못 짐작하거나 지우면 안 되는 값을 지울 수 있기 때문입니다.
큰 숫자가 정리한 뒤에 바뀌지 않나요?
바뀌지 않습니다. 숫자를 계산할 수 있는 값으로 바꾸지 않고 넣은 글자 그대로 옮기므로 20자리 주문 번호도, 1.50처럼 끝에 0이 붙은 수도 그대로 나옵니다.
JSON 줄 여러 개를 한꺼번에 넣을 수 있나요?
한 번에 JSON 값 하나만 받습니다. 객체가 줄마다 하나씩 있는 로그를 통째로 넣으면 첫 객체가 끝난 자리에서 「JSON이 끝난 뒤에 글이 더 있습니다」가 나옵니다. 여러 객체를 함께 보려면 [와 ]로 감싸고 줄 사이에 쉼표를 넣어 배열로 만드세요.
동작 방식 · 확인한 날
JSON 표준(RFC 8259) 문법대로 처음부터 끝까지 한 번 읽으며 공백만 다시 씁니다. 문자열과 숫자는 글자 그대로 옮기므로 아주 큰 수, 1.0 같은 표기, 키 순서, 겹친 키가 바뀌지 않습니다. 정리한 모양은 JavaScript의 JSON.stringify와 같고, 들여쓰기는 2칸 · 4칸 · 탭 가운데 고릅니다. 문법이 틀리면 첫 오류 하나를 줄과 칸 번호로 알려 줍니다. 주석, 끝 쉼표, 작은따옴표는 표준이 아니어서 오류로 봅니다. 넣은 글은 브라우저 밖으로 보내지 않습니다.
- 확인한 날
- RFC 8259(새 창)JSON 표준 문법
계산이 틀린 곳을 보셨다면 알려 주세요.