JSON 포매터·검증기 (서버 전송 없음)
JSON을 붙여넣으면 보기 좋게 정렬하고 문법 오류를 잡아줍니다. 오류가 있으면 몇 번째 줄 몇 번째 칸인지, 무엇이 잘못됐는지 한국어로 알려줍니다. 데이터는 브라우저 밖으로 나가지 않습니다.
JSON 붙여넣기
문자열 안에 JSON이 또 들어 있는 것 같습니다(이중 인코딩).
결과
- 키
- —
- 배열 요소
- —
- 중첩 깊이
- —
- 크기
- —
입력값은 브라우저 밖으로 나가지 않습니다. 모든 계산은 이 페이지 안에서 처리되며, 서버로 전송하거나 저장하지 않습니다.
JSON에서 자주 틀리는 것은 뭔가요?
대부분 네 가지 중 하나입니다. 자바스크립트 문법과 비슷해 보이지만 JSON이 훨씬 엄격합니다.
① 홑따옴표 — JSON은 "쌍따옴표"만 씁니다. '홑따옴표'는 자바스크립트에서는 되지만 JSON에서는 오류입니다.
② 마지막 쉼표 — { "a": 1, } 처럼 닫는 괄호 앞에 쉼표가 남으면 안 됩니다. 자바스크립트는 허용하지만 JSON은 아닙니다.
③ 따옴표 없는 키 — { name: "값" } 은 오류입니다. 키도 쌍따옴표로 감싸야 합니다.
④ 주석 — JSON 규격에는 주석이 없습니다. // 나 /* */ 를 넣을 수 없습니다.
위 도구는 이 네 가지를 따로 알아보고 무엇이 문제인지 한국어로 알려줍니다.
오류 메시지가 왜 이렇게 불친절한가요?
브라우저가 만든 메시지라서 그렇습니다. 브라우저마다 다르기까지 합니다.
크롬은 Unexpected token } in JSON at position 45 처럼 문자 위치를 주고, 파이어폭스는 at line 3 column 5 처럼 줄과 칸을 줍니다. 사파리는 또 다릅니다. 같은 파일을 같은 오류로 열어도 나오는 문장이 제각각입니다.
게다가 "예상치 못한 토큰"이라는 말은 무엇을 고쳐야 하는지 알려주지 않습니다. 진짜 원인은 대개 그 자리가 아니라 몇 줄 위에 있습니다.
위 도구는 어느 브라우저에서든 몇 번째 줄 몇 번째 칸인지, 그 줄이 무엇인지를 보여주고, 흔한 실수에 해당하면 원인을 한국어로 짚어줍니다.
문자열 안에 JSON이 또 들어 있어요
이중 인코딩이라고 부릅니다. JSON을 문자열로 바꿔서 다른 JSON 안에 넣으면 이렇게 됩니다.
"{\"name\":\"홍길동\"}"
전체가 따옴표로 감싸여 있고 안쪽 따옴표마다 역슬래시가 붙습니다. 로그 시스템이나 메시지 큐가 본문을 통째로 문자열 필드에 담을 때 흔히 생깁니다.
읽으려면 두 번 풀어야 합니다. 한 번 파싱하면 문자열이 나오고, 그 문자열을 다시 파싱해야 원래 객체가 됩니다.
위 도구는 이런 값을 알아보고 한 번 더 풀지 물어봅니다.
붙여넣은 데이터가 서버로 가나요?
가지 않습니다. 이 페이지는 서버가 없습니다.
정렬과 검증은 브라우저에 이미 들어 있는 기능으로 처리합니다. 인터넷을 끊고도 동작합니다.
이게 중요한 이유가 있습니다. JSON을 포매터에 붙여넣는 상황은 대개 API 응답이나 설정 파일을 들여다볼 때입니다. 거기에는 사용자 이메일, 내부 식별자, 토큰 같은 게 섞여 있기 마련입니다. 온라인 포매터 대부분은 그 데이터를 자기 서버로 보내고, 언제 지워지는지는 사용자가 확인할 방법이 없습니다.