JSON 포맷터

JSON 포맷 적용, 유효성 검사, 압축을 즉시 수행해 보세요.

JSON 붙여넣기

data.json
준비되었습니다. JSON을 붙여넣고 원하는 작업을 선택하세요.

JSON 데이터는 브라우저 내에서 처리됩니다. BroBroGo 서버로 어떠한 데이터도 전송되지 않습니다.

자주 묻는 질문

제 JSON 데이터가 외부로 업로드되나요?

아닙니다. 포맷터는 사용자의 브라우저 내에서 로컬로 실행되며 JSON 데이터를 외부로 업로드하지 않습니다.

미니파이(Minify)는 어떤 역할을 하나요?

미니파이(압축)는 JSON 데이터의 내용은 그대로 유지하면서 불필요한 공백과 줄바꿈을 모두 제거하는 작업입니다.

JSON 구문의 이해와 유효성 검사의 중요성

JSON(JavaScript Object Notation)은 현대 웹 API와 데이터 교환에서 가장 널리 쓰이는 텍스트 기반 형식입니다. 하지만 수동으로 작성하거나 시스템 간에 전송되는 과정에서 문법적 오류가 자주 발생합니다. JSON 규격은 매우 엄격하므로, 작은 쉼표 하나나 따옴표 누락만으로도 전체 데이터 파싱이 실패할 수 있습니다.

본 도구는 입력된 데이터의 유효성을 즉각적으로 검증합니다. 올바른 형식일 경우 올바른 JSON 형식 상태를 표시하며, 오류가 발견되면 올바르지 않은 JSON 메시지와 함께 구체적인 문제 원인을 짚어냅니다. 예를 들어 다음과 같은 구문 오류를 감지하여 사용자에게 알려줍니다:

  • 객체 키는 큰따옴표로 감싸야 합니다 (객체 키는 큰따옴표로 감싸야 함)
  • 항목 사이에 쉼표가 빠져 있습니다 (항목 사이의 쉼표 누락)
  • 닫는 괄호 앞에 불필요한 쉼표가 있습니다 (닫는 괄호 앞의 불필요한 쉼표)
  • 속성 이름 뒤에 콜론이 빠져 있습니다 (속성 이름 뒤의 콜론 누락)
  • 닫는 따옴표가 없는 문자열이 있습니다 (닫는 따옴표 누락)
  • 값이 와야 할 자리에 예상치 못한 문자가 있습니다 (잘못된 위치의 문자)
  • JSON이 도중에 끝났습니다. 잘린 것으로 보입니다 (데이터가 도중에 잘림)
  • {key}이(가) 중복되었습니다. 포맷을 적용하기 전에 하나를 제거하세요 (중복된 키 존재)

오류가 발생하면 {line}행 {col}열 형식으로 정확한 위치를 제공하며, 오류 위치로 이동 버튼을 통해 문제가 발생한 지점으로 바로 이동할 수 있습니다.

가독성을 위한 포맷 적용과 데이터 압축

원격 서버에서 받아온 JSON 데이터는 대개 공백과 줄바꿈이 없는 한 줄의 문자열로 되어 있어 사람이 읽기 어렵습니다. 이 도구는 사용자가 지정한 들여쓰기 수준(Indentation level)에 맞춰 줄바꿈과 공백을 정렬하는 포맷 기능을 제공합니다. 포맷이 완료되면 JSON 포맷이 적용되었습니다. 메시지가 표시됩니다.

반대로, 네트워크 전송 속도를 높이거나 저장 공간을 절약하기 위해 불필요한 공백과 줄바꿈을 모두 제거하는 압축 기능도 지원합니다. 압축을 실행하면 JSON이 압축(Minify)되었습니다. 상태로 전환되며 데이터 크기가 최소화됩니다.

본 도구는 포맷 및 압축 과정에서 매우 큰 정수(Large integers)를 누락이나 정밀도 손실 없이 그대로 보존합니다. 또한, 객체의 키들을 알파벳 순서로 정렬하고 싶을 때는 키 정렬 기능을 사용할 수 있습니다. 이 기능은 객체 키를 코드 포인트 순서로 재귀적으로 정렬합니다. 배열 순서는 바뀌지 않습니다. 규칙에 따라 객체 내부의 키들을 재귀적으로 정렬하지만, 배열 내부의 순서는 변경하지 않고 그대로 유지합니다. 정렬 후에는 키를 정렬했습니다. 배열 순서는 그대로입니다. Ctrl/Cmd+Z로 되돌릴 수 있습니다. 메시지를 통해 되돌리기 방법을 안내합니다.

트리 뷰를 활용한 복잡한 데이터 탐색

구조가 깊고 복잡한 JSON 데이터를 텍스트로만 파악하는 것은 한계가 있습니다. 본 도구는 시각적으로 데이터를 탐색할 수 있는 트리 뷰를 제공합니다. 코드 뷰에서 텍스트를 확인하는 동시에, 트리 뷰를 통해 계층 구조를 직관적으로 파악할 수 있습니다.

트리 뷰에서는 다음과 같은 제어 및 탐색 기능이 제공됩니다:

  • 모두 펼치기모두 접기: 모든 노드를 한 번에 펼치거나 접을 수 있습니다.
  • {key} 펼치기{key} 접기: 특정 키 노드를 개별적으로 제어합니다.
  • 키와 값 검색: 검색창에 검색어를 입력하여 트리 내부의 키와 값을 찾아낼 수 있습니다. 검색 결과는 {total}개 중 {current}번째 또는 검색 결과가 많을 경우 {total}+개 중 {current}번째 형태로 표시되며, 일치하는 항목이 없으면 일치하는 항목 없음로 나타납니다. 사용자는 이전 일치 항목다음 일치 항목 버튼으로 검색 결과 사이를 이동할 수 있습니다.

특정 데이터 경로를 추출해야 할 때는 노드의 {key} 복사 옵션 메뉴를 열어 값 복사뿐만 아니라, 데이터 참조 규격인 JSON Pointer 복사JSONPath 복사 형식으로 경로를 클립보드에 바로 복사할 수 있습니다.

비표준 및 유사 JSON 형식의 자동 수정

실제 개발 환경에서는 순수한 JSON 규격 외에도 다양한 유사 형식의 데이터를 접하게 됩니다. 본 도구는 비표준 형식을 감지하고 이를 표준 JSON으로 변환할 수 있는 자동 수정 기능을 갖추고 있습니다.

감지된 형식 도구의 진단 메시지 수정 적용 시 동작
Markdown 코드 펜스 Markdown 코드 펜스로 감싼 JSON 같습니다. 적용하면 펜스 안의 JSON만 남습니다.
이스케이프된 문자열 문자열로 이스케이프된 JSON 같습니다. 적용하면 문자열이 이스케이프 해제되어 일반 JSON이 됩니다.
Python 딕셔너리 JSON이 아니라 Python 스타일 딕셔너리 같습니다. 적용하면 따옴표와 True/False/None이 JSON으로 바뀝니다.
JSON Lines JSON Lines(한 줄에 값 하나) 같습니다. 적용하면 각 줄이 하나의 JSON 배열로 묶입니다.
JSONP 콜백 JSONP 콜백으로 감싼 JSON 같습니다. 적용하면 콜백 래퍼가 제거됩니다.
JSONC (주석 포함) JSONC(주석이나 후행 쉼표) 같습니다. 구문을 JSONC로 전환하거나 수정을 적용하세요. 적용하면 주석과 후행 쉼표가 제거됩니다.

수정을 적용하기 전에 수정 미리보기 버튼을 누르면 수정 미리보기 창이 열립니다. 여기에서 원본 데이터와 수정 후 데이터를 비교해 볼 수 있습니다. 수정을 확정하려면 수정 적용를, 취소하려면 취소을 누르면 됩니다. 수정이 완료되면 수정을 적용했습니다. Ctrl/Cmd+Z로 되돌릴 수 있습니다. 메시지가 표시되며, 자동 수리가 불가능한 경우에는 **이 입력은 자동으로 수정할 수 없습니다.**라고 안내합니다.

대용량 파일 처리 및 제약 사항

본 도구는 브라우저 리소스를 효율적으로 관리하기 위해 입력 크기와 트리 렌더링에 몇 가지 제한을 두고 있습니다.

  • 입력 및 파일 제한: 최대 처리 가능한 입력 크기는 10 MiB입니다. 이를 초과하면 입력이 {limit}보다 커서 이 도구가 처리할 수 있는 범위를 넘었습니다. 오류가 발생합니다. 파일 업로드 시에도 크기가 제한을 넘으면 파일이 너무 큽니다. 최대 크기는 {limit}입니다. 메시지가 표시됩니다.
  • 동기 처리 임계값: 250,000자를 초과하는 입력은 동기 처리 임계값을 넘어가므로 성능에 영향을 줄 수 있습니다. 구문 검증이 너무 오래 걸리면 JSON 검사가 너무 오래 걸려 중단되었습니다. 더 작은 문서로 시도해 보세요. 메시지와 함께 작업이 중단됩니다.
  • 트리 뷰 제한: JSON이 올바르지 않으면 **트리 뷰로 보려면 올바른 JSON 형식으로 수정해 주세요.**가 표시되며, 데이터가 너무 크면 이 JSON은 너무 커서 트리 형태로 렌더링할 수 없습니다. 또는 **이 JSON은 값이 너무 많아 트리로 렌더링할 수 없습니다.**라는 안내와 함께 트리 렌더링이 제한됩니다. 대규모 트리 구조에서 전체 펼치기를 시도할 때는 **이 JSON은 너무 커서 전부 펼칠 수 없습니다. 처음 {count}개 행만 표시합니다.**로 표시 행이 제한되며, 사용자는 {count}개 더 보기… 버튼을 눌러 추가 노드를 점진적으로 확인할 수 있습니다.

개인정보 보호 및 데이터 처리 방식

본 도구는 사용자의 개인정보와 데이터 보안을 최우선으로 합니다. 입력창에 직접 붙여넣은 JSON 텍스트나 파일 열기 기능으로 불러온 파일 데이터는 외부 서버로 업로드되지 않습니다. 모든 포맷 적용, 유효성 검사, 압축 및 변환 작업은 오직 사용자의 웹 브라우저 내부에서만 로컬로 처리됩니다.


자주 묻는 질문 (FAQ)

Q. 입력할 수 있는 파일 형식과 인코딩 제한이 있나요?
A. 네, 본 도구는 .json 또는 .txt 확장자를 가진 파일만 지원합니다. 다른 형식을 선택하면 지원하지 않는 파일 형식입니다. .json 또는 .txt 파일을 선택하세요. 메시지가 표시됩니다. 또한 파일은 반드시 UTF-8 인코딩 형식이어야 하며, 그렇지 않으면 이 파일은 UTF-8 텍스트가 아니어서 여기에서 열 수 없습니다. 에러가 발생합니다.

Q. 파일 읽기에 실패하거나 오류가 발생하면 어떻게 해야 하나요?
A. 파일 시스템 일시 오류 등으로 파일을 불러오지 못했을 때는 이 파일을 읽을 수 없습니다. 다시 선택해 보세요. 메시지가 표시됩니다. 이 경우 파일을 다시 선택하여 업로드를 시도해 주십시오.

Q. JSONC 구문은 어떻게 처리하나요?
A. 주석이나 후행 쉼표가 포함된 JSONC 데이터를 다룰 때는 구문 선택 설정을 "JSONC"로 전환하거나, 자동 수정 기능을 적용하여 주석과 불필요한 쉼표를 제거한 표준 JSON으로 변환하여 사용할 수 있습니다.

Q. 중복된 키가 존재하면 어떻게 처리되나요?
A. 본 도구는 중복된 키를 자동으로 병합하거나 무시하지 않습니다. 중복 키가 발견되면 구문 오류로 처리되므로, 포맷을 적용하기 전에 중복된 키 중 하나를 수동으로 제거해야 합니다.