대용량 JSON 뷰어
브라우저 안에서만 처리됩니다. 입력한 내용과 선택한 파일은 서버로 전송되지 않습니다.
파일을 여기에 끌어다 놓거나 클릭해서 선택하세요.
선택한 파일은 브라우저 안에서만 처리됩니다.
사용법
- JSON 파일을 끌어다 놓거나 붙여넣고 "열기"를 누릅니다. 파일은 서버로 전송되지 않습니다.
- 먼저 요약이 나옵니다 — 노드 수, 최대 깊이, 종류별 개수, 그리고 가장 큰 배열들. 큰 배열을 누르면 그 자리로 데려갑니다.
- ▸ 를 눌러 펼치고 접습니다. ⤵ 를 누르면 그 안으로 들어가(드릴다운) 그 부분만 루트로 봅니다. 위쪽 경로를 눌러 되돌아옵니다.
- 키·값을 검색하면 경로 목록이 나오고, 결과를 누르면 접힌 곳을 펼쳐 그 줄로 데려갑니다.
- · 를 눌러 값을 고르면 경로($.users[3].name)와 그 부분 JSON 을 복사할 수 있습니다.
자주 묻는 질문
얼마나 큰 파일까지 되나요?
수십 MB 는 무난하고, 100MB 도 기기 메모리가 넉넉하면 열립니다. 병목은 파일 크기가 아니라 기기 메모리입니다 — 파싱된 JSON 은 원본 텍스트의 몇 배를 차지하기 때문입니다. 열리지 않으면 파일을 쪼개거나, 필요한 부분만 잘라 붙여넣으세요.
큰 파일을 열어도 브라우저가 멈추지 않는 이유가 뭔가요?
파싱과 데이터 보관을 별도 스레드(Web Worker)에서 하고, 화면은 지금 보이는 수십 줄만 그립니다. 파싱 결과를 화면 쪽으로 넘기지도 않습니다 — 넘기려면 데이터를 한 벌 더 복제해야 하고 그 복제가 다시 화면을 멈추기 때문입니다. 그래서 화면은 문서 크기와 무관하게 늘 같은 양의 일만 합니다.
"드릴다운"이 무엇인가요?
⤵ 를 누르면 그 값을 새 루트로 삼아 그 부분만 봅니다. 깊이 10단계 안쪽의 객체를 보려고 매번 열 번 펼치는 대신, 한 번 파고들어 그 안에서 작업하는 것입니다. 들여쓰기도 그 지점부터 다시 시작해 화면이 오른쪽으로 밀리지 않고, 요약(노드 수·깊이·큰 배열)도 그 범위로 다시 계산됩니다. 위쪽 경로 표시를 누르면 원하는 단계로 바로 돌아옵니다.
배열을 펼쳤는데 일부만 나옵니다.
한 번에 200개씩 보여주고 끝에 "더 보기"를 둡니다. 50만 개짜리 배열을 한 번에 펼치면 화면에 그릴 줄 목록을 만드는 것만으로 브라우저가 멈추기 때문입니다. 남은 개수를 함께 보여주니 필요한 만큼만 늘리세요. 특정 위치를 찾는다면 검색이 더 빠릅니다.
왜 브라우저 Ctrl+F 로는 못 찾나요?
접힌 노드 안의 글자는 화면에 아예 없어서 Ctrl+F 가 찾을 수 없습니다. 이 도구의 검색은 화면이 아니라 데이터를 뒤지고, 찾은 경로의 조상을 자동으로 펼쳐 그 줄로 데려갑니다. 결과가 없을 때는 몇 개 노드를 훑었는지 함께 보여주므로 "정말 없다"를 신뢰할 수 있습니다.
검색에 정규식을 쓸 수 있나요?
쓸 수 없습니다. 사용자가 만든 정규식이 되추적 폭발을 일으키면 워커가 멈추고, 이 도구에서는 그게 곧 파일을 다시 열어야 한다는 뜻입니다(워커가 파싱된 데이터를 들고 있기 때문입니다). 부분 문자열 검색만 지원하고, 정규식이 필요하면 정규식 테스터를 쓰세요.
경로 표기가 어떻게 되나요?
$.users[3].name 형식입니다. 키에 점이나 공백처럼 특별한 글자가 있으면 $["my key"] 로 씁니다. 그대로 복사해 코드에 붙여 쓸 수 있게 만든 표기이고, 다시 이 도구에 넣어도 같은 값을 가리킵니다.
"표로 보기"는 언제 나오나요?
드릴다운으로 배열 안에 들어갔을 때, 원소들이 모두 같은 키를 가진 객체면 표를 함께 보여줍니다. API 응답의 목록이 대개 이런 모양이고, 표로 보면 100개 원소의 같은 칸을 나란히 비교할 수 있습니다 — 트리로는 못 하는 일입니다.
JSON 이 아니라고 나옵니다.
몇 번째 줄 몇 번째 칸에서 문법이 깨졌는지와 그 주변 글자를 보여줍니다. 위치는 브라우저 오류 메시지에 기대지 않고 직접 찾습니다 — 그 메시지에는 위치가 없는 경우가 많고 형식도 브라우저마다 다릅니다. 함께 흔한 원인(따옴표 없는 키, 닫는 괄호 앞 쉼표, 주석, JSON Lines 형식 등)도 짚어 줍니다.
파일이 서버로 올라가나요?
올라가지 않습니다. 읽고 파싱하고 보여주는 모든 과정이 브라우저 안에서 끝납니다. 로그·설정·API 응답에는 민감한 값이 섞이기 쉬워서 처음부터 이렇게 만들었습니다. 네트워크를 끊고도 동작합니다.