RevealTheme logo

JSON 포매터 및 검증기

JSON을 정리하고 보기 좋게 만들고 검증하고 압축합니다. 전적으로 브라우저에서 실행되므로 데이터가 기기를 벗어나지 않습니다.

이 도구 사용 방법

  1. 1

    입력 필드에 JSON을 붙여넣으세요.

  2. 2

    들여쓰기되고 읽기 쉽게 표시하려면 '정리'를, 공백을 제거하려면 '압축'을 클릭하세요.

  3. 3

    오류는 구문 분석이 실패한 정확한 줄과 열을 알려줍니다.

  4. 4

    결과를 클립보드에 복사하세요.

JSON이란 무엇이며 왜 형식이 중요한가요?

JSON(JavaScript Object Notation)은 최신 웹 API, 구성 파일, 구조화된 이벤트 로깅의 공통어입니다. 모든 REST 및 GraphQL API는 JSON을 반환하고, 모든 package.json, tsconfig.json 및 대부분의 CI 구성은 JSON이며, AWS, GCP, Azure는 CLI에서 JSON을 사용합니다. JSON의 강점은 최소한의 문법입니다: 여섯 개의 구조적 문자({}, [], 쉼표, 콜론, 따옴표), 네 개의 기본 타입(문자열, 숫자, 불리언, null), 그리고 재귀적 중첩입니다. 그 최소주의는 단점이기도 합니다: JSON은 주석, 후행 쉼표, 따옴표 없는 키, 여러 줄 문자열을 허용하지 않습니다. 잘못 놓인 따옴표나 쉼표 하나가 문서 전체를 망가뜨립니다. 이 도구는 입력을 RFC 8259(JSON 사양)에 따라 검증한 다음, 읽기 좋게 일관된 들여쓰기로 표시하거나, 네트워크 전송을 위해 모든 공백을 제거합니다. 구문 분석과 형식 지정은 JavaScript 엔진의 네이티브 JSON.parse 및 JSON.stringify 함수를 통해 전적으로 브라우저에서 실행되며, 이는 Node.js 서버와 모든 브라우저에서 실행되는 것과 동일한 코드입니다. 즉, 데이터는 네트워크를 통해 이동하지 않으며, 여기서의 검증 동작은 프로덕션에서 코드가 보게 될 것과 정확히 일치합니다.

일반적인 사용 사례

  • API 응답을 포매터에 붙여넣어 디버깅하세요: 압축된 JSON이 감추고 있는 구조를 즉시 시각화합니다.

  • 엄격한 소비자(AWS CloudFormation, Kubernetes 매니페스트 등)에 보내기 전에 JSON을 검증하세요.

  • JSON을 한 줄로 출력하는 구조화된 로깅 라이브러리(Pino, Bunyan)의 로그를 보기 좋게 정리하세요.

  • HTML이나 환경 변수에 포함하기 전에 구성 파일을 압축하세요(구문 분석할 바이트가 줄어듭니다).

  • base64에서 디코딩한 후 JSON Web Token 페이로드의 형식을 정리하세요.

  • 두 API 응답을 모두 정리하여 차이점을 관찰함으로써 비교하세요.

자주 묻는 질문

제 JSON이 브라우저를 벗어나나요?
아닙니다. 모든 구문 분석과 형식 지정은 내장된 JSON.parse 및 JSON.stringify 함수를 통해 브라우저에서 이루어집니다. 데이터는 서버에 도달하거나 로그에 나타나지 않습니다. 토큰, 고객 데이터 또는 기타 비밀이 포함된 API 응답에 사용해도 안전합니다.
JSON5나 JSONC(주석 포함)의 형식을 정리할 수 있나요?
아닙니다: 이 도구는 엄격한 JSON 사양(RFC 8259)을 따릅니다. 주석과 후행 쉼표는 구문 오류이며 파서 오류 메시지를 생성합니다. 유연한 JSON 변형에는 json5.org와 같은 JSON5 파서를 사용하거나, 입력을 먼저 주석을 제거하는 전처리기에 통과시키세요.
들여쓰기 크기는 얼마로 해야 하나요?
2칸은 JavaScript와 웹의 관례이며 가장 보편적입니다. 4칸은 Python 생태계의 기본값입니다(PEP 8 들여쓰기와 일치). 탭은 편집기마다 일관되지 않게 표시되고 비교 도구를 망가뜨리므로, 팀에 엄격한 탭 관례가 있지 않은 한 피하세요. 이 선택은 순전히 미적인 것이며, 파서는 신경 쓰지 않습니다.
압축된 JSON은 왜 중요한가요?
압축된 JSON은 바이트를 절약하며, 이는 대규모에서 의미가 있습니다(예: 수백만 건의 요청에 100KB 데이터를 반환하는 공개 API). 작은 구성 파일(수 KB)의 경우 차이는 미미합니다. 정리된 JSON과 압축된 JSON의 브라우저 구문 분석 시간은 동일하므로, 압축하는 유일한 이유는 대역폭입니다.
오류 메시지를 어떻게 해석하나요?
JavaScript의 JSON.parse 오류 메시지에는 구문 분석이 실패한 위치(시작 지점으로부터의 오프셋)가 포함됩니다. 흔한 오류: 'Unexpected token'은 보통 따옴표나 쉼표 누락, 또는 이스케이프되지 않은 특수 문자를 나타냅니다. 'Unexpected end of JSON input'은 문서가 잘렸음을 의미합니다. 'Unexpected non-whitespace character'는 흔히 후행 쉼표를 나타냅니다.
매우 큰 JSON 파일의 형식을 정리할 수 있나요?
브라우저의 JSON.parse는 성능이 문제가 되기 전까지 약 100MB까지의 파일을 처리합니다. 더 큰 파일에는 명령줄에서 jq를 사용하세요: 임의로 큰 JSON 파일을 스트리밍으로 처리할 수 있습니다.
JSON과 JavaScript 객체 리터럴의 차이는 무엇인가요?
JSON은 JavaScript 객체 리터럴 구문의 엄격한 부분집합입니다. 차이점: JSON 키는 큰따옴표로 묶인 문자열이어야 합니다(JS는 따옴표 없는 키와 작은따옴표를 허용). JSON은 주석, 후행 쉼표, undefined를 금지합니다. JSON에는 표현식, 함수 호출, 계산된 값이 없습니다. JavaScript는 JSON을 안전하게 평가할 수 있지만, JSON은 임의의 JavaScript를 평가할 수 없습니다.

관련 도구