JSON 포맷터·검증기
JSON을 포맷·압축·검증합니다. 구문 오류는 정확한 줄과 열로 알려 주고, 큰 숫자는 쓰인 그대로 유지합니다.
- 최상위 타입
- 키 개수
- 최대 깊이
- 크기
도구를 여기에 고정하세요. 이 브라우저에 저장됩니다.
도구를 고정하면 그 스티커가 여기에 붙습니다.
JSON을 포맷·압축·검증합니다. 구문 오류는 정확한 줄과 열로 알려 주고, 큰 숫자는 쓰인 그대로 유지합니다.
JSON은 RFC 8259와 ECMA-404에 정의되어 있습니다. 문서 하나는 값 하나이며, 그 값은 객체, 배열, 문자열, 숫자, true, false, null 중 하나입니다. 문자열과 객체 키는 큰따옴표로 감싸며, 주석 문법은 없습니다.
깨진 문서 중 상당수에는 JavaScript 객체 리터럴에서는 허용되지만 JSON에서는 허용되지 않는 것이 들어 있습니다. 마지막 항목 뒤의 쉼표, 작은따옴표, 따옴표 없는 키, 주석 같은 것들입니다. 흔한 실수 고치기를 켜면 이 도구는 이런 것들과 함께 문자열 안에 그대로 들어간 줄바꿈과 탭, 작은따옴표 앞의 백슬래시, Python의 True, False, None까지 읽어 들이고, 무엇을 바꿨는지 알려 준 뒤 엄격한 JSON으로 출력합니다.
JSON.parse 오류 문구는 브라우저마다 다르고, 오류 위치를 알려 주지 않는 브라우저도 있습니다. 이 도구는 자체 파서로 텍스트를 읽기 때문에 메시지와 줄, 열이 어느 브라우저에서나 같습니다. 오류 위치로 이동을 누르면 입력에서 문제가 된 문자가 선택되며, 붙여 넣은 직후에는 도구가 알아서 선택합니다.
표시되는 위치는 파서가 더 진행할 수 없었던 지점이므로 실제 실수보다 약간 뒤일 수 있습니다. 예를 들어 쉼표가 빠진 경우에는 다음 항목의 첫 문자에서 오류가 보고됩니다.
JSON 문법은 숫자의 크기를 제한하지 않지만, JavaScript의 JSON.parse는 모든 숫자를 64비트 부동소수점으로 바꾸며, 이 형식은 2의 53제곱(9,007,199,254,740,992)까지만 모든 정수를 정확히 표현할 수 있습니다. 12345678901234567890처럼 더 큰 식별자는 JSON.parse를 거치면 12345678901234567000이 됩니다. 이 포맷터는 숫자를 변환하지 않고 텍스트 그대로 복사하므로 긴 정수나 1.0, 1e5가 들어온 그대로 나가며, JavaScript 파서를 거치면 값이 바뀌는 정수가 있으면 경고합니다.
RFC 8259는 객체의 키가 고유한 것이 바람직하다고 하며, 중복 키를 받은 소프트웨어의 동작은 예측할 수 없다고 말합니다. 많은 파서는 경고 없이 마지막 값만 남깁니다. 이 포맷터는 모든 항목을 유지하고 첫 번째 중복 키의 위치를 알려 줍니다.
키 정렬은 모든 단계의 모든 객체에서 키를 UTF-16 코드 단위 순으로 정렬합니다. JavaScript 기본 정렬과 같은 순서로, 숫자, 대문자, 소문자 순입니다. 배열은 순서를 유지합니다. 크기는 UTF-8 바이트로 계산합니다.
아니요. 파싱과 포맷은 브라우저 탭의 JavaScript가 처리하며, 이 도구는 붙여 넣은 내용으로 네트워크 요청을 보내지 않습니다.
RFC 8259의 문법에는 주석이 없고 모든 쉼표 뒤에 값이 와야 하므로, 표준 파서는 둘 다 거부합니다. 이를 허용하는 것은 JSON5라는 별개의 형식입니다. 이런 파일을 읽어 엄격한 JSON으로 받으려면 실수 고치기 옵션을 켜세요.
포맷은 각 항목을 한 줄에 하나씩 놓고 들여써서 구조를 읽기 쉽게 만듭니다. 압축은 항목 사이의 공백을 없애 저장하고 전송하기에 더 작은 문서로 만듭니다. 두 형태의 데이터는 같습니다.
명세를 따르는 프로그램이라면 바뀌지 않습니다. 명세는 객체를 이름과 값 쌍의 순서 없는 모음으로 정의하기 때문입니다. 정렬은 두 문서를 줄 단위로 비교할 때 유용합니다. 배열은 순서가 있으므로 항목을 옮기지 않습니다.
별도의 창에서 열리며 오프라인에서도 계속 작동합니다.
설치하려면 공유 버튼을 누른 다음 “홈 화면에 추가”를 선택하세요.