JSON 포맷터 및 검증기 - 보기 좋게, 축소 및 검사
원시 JSON을 붙여넣고 원하는 들여쓰기로 보기 좋게 만들거나, 운영 환경용으로 축소하거나, 정확한 오류 위치와 함께 검증하세요.
이 포맷터는 브라우저의 기본 JSON 엔진으로 텍스트를 파싱하므로 여기서 통과하는 내용은 JSON.parse가 허용하는 내용과 정확히 같습니다. 모든 작업은 로컬에서 실행되며 업로드되지 않습니다.
JSON 포맷터 및 검증기 - 보기 좋게, 축소 및 검사
원시 JSON을 붙여넣고 원하는 들여쓰기로 보기 좋게 만들거나, 운영 환경용으로 축소하거나, 정확한 오류 위치와 함께 검증하세요.
개인정보 보호: 데이터는 브라우저 밖으로 나가지 않습니다. 파싱, 서식 지정, 검증은 모두 기기에서 수행됩니다.
작동 방식: 입력을 JSON.parse로 파싱한 다음, 선택한 들여쓰기(축소 시 없음)를 사용해 JSON.stringify로 다시 직렬화합니다.
JSON 포맷터 및 검증기 소개
JSON(JavaScript Object Notation)은 현대 API, 구성 파일, 로그 파이프라인 및 데이터 교환에서 사용하는 공통 언어입니다. 기계가 생성하기는 쉽지만 사람이 읽기는 불편합니다. API 응답은 보통 수천 자 길이의 한 줄짜리 축소 형식으로 도착하고, 직접 편집한 구성 파일은 쉼표 하나가 빠져도 로드되지 않습니다. 이 JSON 포맷터는 두 문제를 한곳에서 해결합니다. 압축된 JSON을 들여쓰기된 읽기 쉬운 구조로 보기 좋게 만들고, 보기 좋게 만든 JSON을 가능한 가장 작은 형식으로 압축하며, 정확한 줄과 열 위치로 모든 입력의 구문 오류를 확인합니다.
이 도구는 사용자 지정 파서 대신 브라우저의 기본 JSON 엔진을 사용하도록 설계되었습니다. 서식 지정, 축소 또는 검증을 클릭하면 텍스트가 실행 중인 JavaScript 코드와 동일한 구현인 JSON.parse를 거칩니다. 따라서 검증 결과는 신뢰할 수 있습니다. 여기서 파싱되면 Node.js와 모든 최신 브라우저에서도 파싱되고, 실패하면 엔진 자체의 오류 메시지를 줄과 열로 변환해 문제로 바로 이동할 수 있습니다. 흔한 원인으로는 후행 쉼표, 큰따옴표 대신 작은따옴표 사용, 따옴표 없는 속성 이름, 주석(표준 JSON에서는 허용되지 않음), 터미널에서 복사할 때 섞인 제어 문자가 있습니다.
서식 옵션은 실제 프로젝트에서 사용하는 스타일을 지원합니다. 두 칸 들여쓰기(대부분 JavaScript 생태계의 기본값), 네 칸 또는 탭입니다. 선택적 키 정렬은 모든 객체를 재귀적으로 다시 작성해 속성을 알파벳순으로 배치합니다. 두 페이로드를 비교하거나 구성 파일을 일정한 순서로 유지할 때 유용합니다. 단, 키 순서만 바뀌고 값은 절대 바뀌지 않으며 JSON의 의미는 키 순서에 좌우되지 않습니다. 작업이 성공하면 최상위 키 수(또는 배열 요소 수)와 결과의 정확한 바이트 크기도 표시되어 페이로드 예산이나 요청 본문 제한을 확인하는 데 도움이 됩니다.
축소는 보기 좋게 만들기의 반대 작업입니다. 의미 없는 공백을 모두 제거해 가장 작은 동등한 문서를 만듭니다. 환경 변수, 쿼리 문자열 또는 대역폭에 민감한 API 호출에 JSON을 넣기 전에 사용하세요.
모든 작업은 브라우저 탭에서 로컬로 수행됩니다. 붙여넣은 텍스트는 서버로 전송되거나 저장되거나 기록되지 않으므로 토큰, 고객 기록, 내부 구성과 같은 개인 페이로드에도 안전합니다. 알아둘 제한 사항으로, 매우 큰 문서(수백 MB)는 브라우저 메모리의 제약을 받으며 JSON5, 주석이 있는 JSONC, NDJSON 스트림처럼 JSON을 확장한 형식은 검증 전에 엄격한 JSON으로 변환해야 합니다.
JSON 포맷터 예시
일반적인 입력과 각 작업의 결과입니다.
| 입력 | 작업 및 출력 | 참고 |
|---|---|---|
| {"name":"Ada","tags":["math","code"]} | 서식 지정 → 선택한 들여쓰기로 여러 줄에 걸쳐 정렬 | 축소된 API 응답을 읽기에 좋습니다. |
| 40줄로 보기 좋게 만든 구성 파일 | 축소 → 모든 공백을 제거해 한 줄로 만들기 | 가장 작은 동등 문서로, 환경 변수와 요청 본문에 적합합니다. |
| {"id": 1, "name": "Ada",} | 검증 → 1번째 줄 오류: 후행 쉼표는 허용되지 않음 | 엄격한 JSON에서는 후행 쉼표, 주석, 작은따옴표를 허용하지 않습니다. |
| {"z":1,"m":2,"b":3} (키 정렬 사용) | 서식 지정 → 모든 중첩 단계에서 키를 b, m, z 순으로 재배열 | 정렬된 키는 두 페이로드 간 차이를 안정적으로 만듭니다. |
JSON 서식 지정 및 검증 방법
- JSON을 입력 상자에 붙여넣으세요. 축소된 API 응답, 구성 파일 또는 직접 작성한 코드 조각을 사용할 수 있습니다.
- 원하는 들여쓰기(공백 2개, 공백 4개 또는 탭)를 선택하고, 필요하면 알파벳순 키 정렬을 켜세요.
- 보기 좋은 출력은 서식 지정, 압축된 형식은 축소, 구문만 확인하려면 검증을 클릭하세요.
- 파싱에 실패하면 오류 메시지를 읽고 보고된 줄과 열로 이동해 문제를 수정하세요.
- 결과 패널에서 출력을 복사하세요. 표시되는 바이트 크기로 페이로드 제한을 추적할 수 있습니다.
JSON 포맷터 FAQ
JSON 검증에 실패하는 이유는 무엇인가요?
가장 흔한 원인은 후행 쉼표, 문자열이나 키를 감싼 작은따옴표, 따옴표 없는 속성 이름, 주석 및 이스케이프되지 않은 제어 문자입니다. 엄격한 JSON에서는 모두 허용되지 않습니다. 오류 메시지에는 파서가 중단된 줄과 열이 포함되며, 보통 문제가 된 문자 위치 또는 바로 뒤입니다.
여기에 민감한 데이터를 붙여넣어도 안전한가요?
예. 포맷터는 기본 JSON 엔진을 사용해 브라우저에서만 실행되며, 붙여넣은 내용은 네트워크로 전송되거나 저장 또는 기록되지 않습니다. 페이지를 불러온 후 인터넷 연결을 끊어도 계속 작동합니다.
축소하면 데이터가 바뀌나요?
아니요. 축소는 토큰 사이의 의미 없는 공백만 제거합니다. 모든 값, 문자열, 숫자는 의미상 바이트 단위로 동일하며, 축소된 출력을 파싱하면 원본과 정확히 같은 데이터 구조가 생성됩니다.
키 정렬 옵션은 무엇을 하나요?
모든 객체를 재귀적으로 다시 작성해 모든 중첩 깊이에서 속성이 알파벳순으로 나타나게 합니다. 값과 배열은 그대로입니다. JSON 객체의 키 순서에는 의미가 없으므로 정렬은 비교와 버전 관리에 사용할 표준 출력을 얻는 안전한 방법입니다.
키 개수와 바이트 크기는 무엇을 의미하나요?
키 개수는 최상위 객체 속성의 수입니다(루트가 배열이면 요소 수). 바이트 크기는 결과를 UTF-8로 인코딩한 길이이며, HTTP 페이로드 제한에서 중요한 것은 문자 수가 아니라 이 값입니다.
JSON5나 주석이 있는 파일을 서식 지정할 수 있나요?
직접은 불가능합니다. 이 도구는 RFC 8259에 정의된 엄격한 JSON을 검증하므로 주석이나 JSON5의 따옴표 없는 키 같은 편의 문법은 오류로 보고됩니다. 먼저 주석을 제거하거나 파일을 엄격한 JSON으로 변환한 다음 여기서 서식을 지정하세요.