WAYPOINT TOOLS정밀 계산 & 업무 유틸리티 허브

JSON 포맷터 & 유효성 검사기

압축된 JSON 줄바꿈 정렬(Beautify), 최소화(Minify), 문법 오류 위치 점프, 배열 CSV 내보내기

브라우저 즉시 계산
들여쓰기:
유효한 JSON · 최상위 object · CSV는 최상위 배열만 지원
JSON Editor (CodeMirror 6)298 bytes · 15 lines

지금 계산한 분들이 함께 많이 사용하는 도구

PV 증폭 추천

사용 방법 및 안내

JSON 포맷터 & 유효성 검사기는 브라우저 표준 JSON.parse와 JSON.stringify만 사용해 RFC 8259 JSON을 검사하고, 2칸 또는 4칸 들여쓰기로 정렬(Beautify)하거나 공백을 없애 압축(Minify)합니다. 예를 들어 {"a":1,"b":[true,null]}을 2칸으로 정렬하면 키마다 줄이 나뉘고, 압축하면 한 줄이 됩니다. 빈 입력은 오류로 보지 않습니다. 파싱과 문자열화는 이 탭의 메인 스레드에서만 일어나며 서버로 원문을 올리지 않습니다.

오류 위치 (V8 position → 행:열)

Chromium/V8이 던지는 Unexpected token ... at position N에서 N은 원문 문자열의 0부터 세는 UTF-16 인덱스입니다. 이 도구는 줄바꿈(\n, \r\n)을 따라 1부터 세는 행(line)과 열(column)로 환산해 배너에 12행 4열 (position 187)처럼 보여 줍니다. 배너의 위치 숫자를 누르면 CodeMirror 커서가 그 칸으로 이동합니다. Firefox처럼 메시지에 이미 line X column Y가 있으면 엔진이 준 행·열을 그대로 쓰고, Safari처럼 숫자가 없으면 메시지 문자열만 표시합니다. 에디터 걸터(jsonParseLinter)나 별도 워커 파서는 없습니다.

배열 → CSV 내보내기

최상위 값이 비어 있지 않은 배열이면 UTF-8 BOM을 붙인 CSV 파일로 저장할 수 있습니다. [{"id":1,"name":"가"},{"id":2,"name":"나"}]는 헤더 id,name과 두 데이터 행이 됩니다. 키가 행마다 다르면 처음 등장한 순서대로 열을 늘립니다. 칸 값이 객체나 배열이면 그 칸에 JSON 문자열을 넣습니다. 최상위가 {"rows":[...]}처럼 객체이면 배열이 아니므로 버튼이 꺼집니다. 2차원 배열은 col1,col2 헤더를 쓰고, 원시값 배열은 value 한 열로 내보냅니다.

지원하지 않는 것 (정직 고지)

  • Web Worker / 가상화 에디터 없음: 수 메가바이트를 넘는 한 덩어리는 탭이 잠시 멈출 수 있습니다. 수십 MB를 부드럽게 처리한다고 약속하지 않습니다.
  • JSONC / JSON5 / 후행 쉼표 없음: 주석, 작은따옴표, 마지막 쉼표는 표준 JSON이 아니라서 JSON.parse가 오류를 냅니다.
  • 큰 정수 정밀도: 9007199254740991(2^53-1)을 넘는 숫자는 JavaScript Number로 읽히며 하위 자리가 반올림될 수 있습니다. BigInt로 보존하지 않습니다.

자주 묻는 질문 (FAQ)

수십 MB JSON도 Web Worker와 가상화 에디터로 처리되나요?

아닙니다. 이 페이지는 Web Worker와 가상화 리스트를 쓰지 않습니다. JSON.parse와 JSON.stringify가 메인 스레드에서 돌아가므로, 수 메가바이트를 넘으면 입력이 멈춘 것처럼 보일 수 있습니다. 큰 파일은 잘라서 검사하는 편이 안전합니다.

문법 오류의 position 숫자는 행과 열로 어떻게 바뀌나요?

V8 메시지의 at position N은 0부터 세는 문자 인덱스입니다. 원문을 앞에서부터 읽어 줄바꿈마다 행을 올리고, 그 줄에서의 칸 수를 열로 표시합니다. 최신 Chrome이 (line X column Y)를 같이 주면 그 값을 우선하고, 배너를 누르면 에디터 커서가 해당 칸으로 이동합니다.

후행 쉼표나 주석이 있는 JSON도 정렬되나요?

되지 않습니다. 브라우저 JSON.parse는 RFC 8259만 받습니다. {"a":1,} 같은 후행 쉼표, // 주석, 작은따옴표 키는 오류입니다. JSON5나 JSONC 전용 파서는 넣지 않았습니다.

CSV 내보내기는 어떤 JSON에서 동작하나요?

최상위가 비어 있지 않은 배열일 때만 동작합니다. 객체 배열은 등장 순 키를 헤더로 쓰고, 중첩 객체·배열 칸은 JSON 문자열로 넣습니다. 최상위가 객체이거나 빈 배열이면 파일을 만들지 않습니다. 엑셀 한글 깨짐을 줄이려고 UTF-8 BOM을 붙입니다.

입력한 JSON이 서버에 저장되나요?

저장되지 않습니다. 검사, 정렬, 압축, CSV 변환은 모두 이 브라우저 탭 메모리에서만 이뤄집니다. 페이지를 닫으면 원문은 남지 않습니다.