JSON 포매터ㆍ변환기
JSON을 정렬ㆍ최소화하고 YAMLㆍCSVㆍXML과 양방향 변환합니다. 붙여넣으면 형식을 자동 인식합니다.
결과가 여기에 표시됩니다.
JSON 포매터ㆍ변환기 사용 안내
이 도구는 모든 처리를 브라우저에서 수행합니다. 입력한 데이터는 서버로 전송되지 않으므로 민감한 정보도 안전하게 가공할 수 있습니다.
Smart Input Detection
텍스트를 붙여넣거나 입력하면 형식(JSON/YAML/CSV/XML)을 자동으로 인식해 적절한 탭과 방향을 선택합니다.
포매터ㆍMinifier
JSON을 사람이 읽기 좋게 들여쓰기하거나, 모든 공백을 제거해 파일 크기를 줄입니다.
JSON ↔ YAML
설정 파일이나 CI 파이프라인에서 자주 쓰는 YAML과 JSON을 양방향으로 변환합니다.
JSON ↔ CSV
객체 배열 형태의 JSON을 CSV 표로, CSV를 객체 배열 JSON으로 변환합니다. 첫 행을 헤더로 사용합니다.
XML ↔ JSON
XML 문서를 JSON 트리로 파싱하거나, JSON 객체를 XML 요소로 직렬화합니다. 속성은 @ 접두사로 표현합니다.
SQL 쿼리에서 JSON 컬럼을 다룬다면 SQL 포매터도 함께 활용하세요. JSON 값에 고유 식별자가 필요하다면 UUID 생성기로 v4ㆍv7를 바로 만들 수 있습니다. 텍스트ㆍ파일을 Base64로 인코딩해야 한다면 Base64 인코더ㆍ디코더도 참고하세요.
JSON 파싱ㆍ작성 흔한 실수
JSON은 단순해 보이지만 표준 사양(RFC 8259 / ECMA-404)을 미세하게 어기면 파서가 거부합니다. JavaScript 객체 리터럴과 헷갈려서 발생하는 실수가 가장 흔합니다.
JSON 표준이 허용하지 않는 것들
- 주석 -
// ...이나/* ... */모두 불허. 주석이 필요하면 JSON5 또는 별도 메타 필드(예:"_comment") 사용. - Trailing comma -
{"a": 1, "b": 2,}마지막 콤마 불허. JS는 허용해서 복붙 시 자주 발생. - 작은따옴표 - 문자열은 큰따옴표만.
{'name': 'kim'}는 JSON이 아닙니다. - 키 따옴표 누락 -
{name: "kim"}는 JS 객체 리터럴이지 JSON이 아닙니다. 모든 키에 큰따옴표 필요. - NaNㆍInfinityㆍundefined - JSON에 없는 값. 직렬화 시
null로 변환되거나 오류 발생.JSON.stringify({a: NaN})결과는{"a":null}. - 16진수ㆍ8진수 숫자 -
0xFFㆍ0o17같은 표기 불허. 십진수만 허용.
인코딩ㆍ이스케이프 함정
- BOM(Byte Order Mark) - UTF-8 BOM이 파일 앞에 있으면 일부 파서가 거부합니다. UTF-8은 BOM 없이 저장이 표준.
- 역슬래시 이스케이프 누락 - 문자열 내 백슬래시는
\\로 이스케이프해야 함. Windows 경로C:\Users는"C:\\Users"로 작성. - 줄바꿈을 그대로 포함 - 문자열 내 실제 줄바꿈 문자는 불허.
"\n"(두 글자)으로 이스케이프. - 유니코드 surrogate pair - 이모지 등 BMP 밖 문자는
😀두 16비트 쌍으로 표현. 단독 surrogate는 무효.
변환 실패가 자주 나는 케이스
- JSON ↔ CSV - 중첩 객체 - CSV는 평면 구조라 중첩 객체ㆍ배열 표현 불가. 평탄화(
user.name식 키)나 JSON 문자열로 인코딩 필요. - JSON ↔ YAML - 들여쓰기 의존 - YAML은 들여쓰기로 구조를 정의. 탭과 스페이스 혼용 시 파싱 실패. JSON에서 YAML로 갈 때는 안전, 반대 방향은 검증 필수.
- JSON ↔ XML - 속성 vs 자식 요소 - XML은 같은 정보를 속성 또는 자식으로 표현 가능. 변환 결과가 원본과 100% 호환되지 않을 수 있음.
- 큰 정수 정밀도 손실 - JSON 숫자는 IEEE 754 64비트 부동소수점으로 처리되어 2^53 이상 정수는 정밀도 손실. ID 같은 큰 정수는 문자열로 처리 권장.
스키마ㆍ검증 흔한 실수
- JSON Schema 없이 운용 - 클라이언트ㆍ서버 간 JSON 형식 불일치는 런타임에야 발견. JSON Schema(또는 TypeScript 타입)로 사전 검증 권장.
- null vs 미존재 키 혼용 -
{"a": null}과{}는 다릅니다. API 설계 시 명시적 의미 약속 필요. - 대소문자 혼용 -
userNameㆍusernameㆍuser_name이 한 응답에 섞이면 클라이언트 파싱이 복잡. camelCase 또는 snake_case로 통일.
자주 묻는 질문
입력한 데이터가 서버로 전송되나요?
아니요. 모든 변환은 브라우저(JavaScript)에서 처리되며 서버로 전송되지 않습니다.
JSON5나 주석이 포함된 JSON도 지원하나요?
표준 JSON만 지원합니다. 주석이나 후행 쉼표가 있으면 파싱 오류가 발생합니다.
대용량 JSON도 처리할 수 있나요?
수 MB 수준까지는 브라우저에서 무리 없이 처리됩니다. 10MB를 넘어가면 포맷팅ㆍ트리 렌더링이 느려질 수 있으니 필요한 부분만 잘라 붙여넣는 것이 좋습니다.