포맷팅은 압축된 JSON을 읽기 쉽게 만들어 구문 오류와 자료형 차이를 찾도록 돕습니다. 키와 문자열에는 큰따옴표를 쓰고 후행 쉼표와 주석은 제거해야 합니다.
JSON은 객체, 순서 있는 배열, 문자열, 숫자, 불리언, null을 표현합니다. 실행 중인 JavaScript 객체와 다른 텍스트 형식이며 함수, 심볼, undefined는 포함하지 않습니다. [JSON 포매터](/)는 구문을 검사하고 중첩 구조를 보여 줍니다.
축소된 API 응답은 보통 한 줄입니다. 들여쓰기는 값의 의미를 바꾸지 않으면서 누락 괄호, 잘못된 쉼표, 예상치 못한 자료형을 찾도록 돕습니다.
RFC 8259는 들여쓰기 폭을 정하지 않습니다. 웹에서는 두 칸, Python이나 Java에서는 네 칸이 흔하며 탭은 편집기마다 표시 폭을 선택할 수 있습니다. 프로젝트 기준을 통일하세요. 축소할 때 문자열 안의 공백은 절대 제거하면 안 됩니다.
키와 문자열에는 큰따옴표가 필요합니다. 작은따옴표, 따옴표 없는 키, 주석, 후행 쉼표는 엄격한 JSON에서 유효하지 않습니다. 오류 위치는 파서가 멈춘 곳이며 실제 원인은 바로 앞에 있을 수 있습니다.
포매터의 따옴표 교정은 일부 입력을 복구할 수 있지만 후행 쉼표나 주석을 제거하거나 누락 괄호를 추가하지는 않습니다. 아래 예제에서 경계를 확인하고 도구로 이동할 수 있습니다.
NaN, Infinity, undefined는 JSON 값이 아닙니다. 의미에 맞게 대체해야 하며 무조건 null로 바꾸면 정보가 달라질 수 있습니다. 수신자가 엄격한 JSON을 요구한다면 JSON5를 명시적으로 변환하세요.
JSON→YAML은 Kubernetes 매니페스트, Docker Compose, CI 설정에 쓰입니다. JSON→CSV는 객체를 행, 키를 열, 중첩 객체를 점 표기법 열로 만듭니다. 스프레드시트로 가져올 때 배열과 자료형을 확인하세요.
JSON→XML은 XML 인터페이스에 유용하며 요소 이름과 배열 표현을 정해야 합니다. JSON→TOML은 Cargo.toml이나 pyproject.toml에 쓰입니다. TOML에는 null이 없으므로 모든 JSON 구조를 손실 없이 옮길 수는 없습니다.
변환은 브라우저에서 수행됩니다. 기기 메모리와 구현이 크기와 깊이를 제한합니다. 왕복 변환이 항상 모든 정보를 보존한다고 가정하지 말고 대상 시스템에서 결과를 검증하세요.
키 이름에 snake_case나 camelCase 같은 규칙을 정하고 API 전체에서 유지하세요. 중요한 관계는 남기되 불필요한 중첩을 줄입니다. 필드 생략과 null은 의미가 다를 수 있으므로 스키마에 명시하세요.
JSON에는 날짜 자료형이 없습니다. 2024-01-15T10:30:00Z는 명확한 문자열이며 Unix 타임스탬프도 단위를 문서화하면 사용할 수 있습니다. 시간대 없는 지역 날짜를 실수로 API에 넣지 않도록 주의하세요.
입력은 시스템 경계에서 검증합니다. 파싱 성공은 구문만 보장하며 업무 규칙까지 보장하지 않습니다. JSON Schema로 필수 필드, 자료형, 범위를 정의할 수 있습니다. JSON 비교기는 객체 키 순서는 무시하고 배열 순서는 고려해 응답 변경을 검토합니다.
파싱 오류는 처리가 멈춘 위치를 표시합니다. 빠진 쉼표나 따옴표는 그 바로 앞에 있을 수 있습니다. JSON 키와 문자열은 큰따옴표를 사용해야 하며 후행 쉼표와 주석은 허용되지 않습니다.
작은따옴표와 따옴표 없는 키: 포매터의 따옴표 수정으로 이 예제를 엄격한 JSON으로 바꿀 수 있습니다.
{name: 'Alice'}{"name":"Alice"}후행 쉼표: 마지막 쉼표를 직접 지워야 합니다. 따옴표 수정은 후행 쉼표나 주석을 삭제하지 않으며 빠진 괄호를 채우지 않습니다.
{"a":1,"b":2,}{"a":1,"b":2}NaN, Infinity, undefined는 JSON 값이 아닙니다. 데이터의 의미에 맞는 값을 선택해야 하며, 무조건 null로 바꾸면 의미가 달라질 수 있습니다.
JSON5는 JSON에 주석, 후행 쉼표, 따옴표 없는 키, 작은따옴표 문자열을 추가한 확장입니다. 대부분의 API와 파서는 JSON5가 아닌 엄격한 JSON(RFC 8259)을 기대합니다.
직접적으로는 안 됩니다. 표준 방식은 바이너리 데이터를 Base64로 인코딩하여 JSON 문자열로 저장하는 것입니다. Base64 Encoder가 이 변환을 처리합니다.
JSON 명세에는 크기 제한이 없습니다. 실질적인 제한은 파서의 메모리에 의해 정해집니다. 저희 포매터는 대용량 파일을 브라우저 내에서 효율적으로 처리합니다.
아닙니다. JavaScript 객체는 런타임 데이터 구조입니다. JSON은 텍스트 직렬화 형식입니다. 함수, undefined, 심볼은 유효한 JSON 값이 아닙니다.
JSON 포매터의 축소 버튼을 사용하세요. 문자열 밖의 불필요한 공백을 제거하고 문자열 값 안의 공백은 보존합니다. 감소량은 원래 서식에 따라 달라집니다.