JSON ↔ YAML ↔ TOML 변환기
JSON, YAML, TOML 간 변환, 포맷 자동 감지
로컬 실행
loading…
이 도구에 대해
JSON, YAML, TOML 사이를 어느 방향으로든 변환합니다. 소스 형식은 붙여넣는 순간 자동 감지됩니다. 대괄호는 JSON을, key: 콜론은 YAML을, [테이블]은 TOML을 시사하며, 모호한 입력에는 수동 지정이 가능합니다. 변환은 실제 파싱을 거치므로 출력이 유효함이 보장됩니다. 줄 단위 텍스트 변환이 아닙니다.
각 형식에는 진짜 강점이 있습니다. JSON은 API와 기계 간 교환에, YAML은 사람이 편집하는 설정(Kubernetes, CI 파이프라인)에, TOML은 타입이 명확한 설정 파일(Cargo, pyproject)에 맞습니다. 그 사이에서 데이터를 손으로 옮기다 보면 들여쓰기와 따옴표 실수가 생기기 마련인데, 이 변환은 그것을 없애 줍니다.
변환기는 형식의 한계에 정직합니다. TOML에는 최상위 배열도 null도 없으며, 그런 문서를 변환하려 하면 데이터를 조용히 버리는 대신 이유를 알려줍니다.
자주 묻는 질문
- 주석은 변환에서 살아남나요?
- 아니요. JSON에는 주석 문법이 없고, 변환은 파싱된 데이터 구조를 거치는데 주석은 거기에 담기지 않습니다. YAML → JSON → YAML 변환은 주석을 되돌릴 수 없이 잃습니다. 주석이 중요하다면 원본 파일을 보관하세요.
- 왜 제 YAML의 "no"가 false가 됐나요?
- YAML 1.1은 yes/no/on/off를 불리언으로 취급하며, 국가 코드 NO가 false가 되는 것은 유명한 사례입니다. 여기의 파서는 YAML 1.2(true/false만)를 따르지만, 옛 파서용으로 작성된 파일은 여전히 놀라움을 줄 수 있습니다. 불리언, 숫자, 날짜처럼 보이는 문자열에는 따옴표를 붙이세요.
- 왜 제 JSON이 TOML로 변환되지 않나요?
- TOML은 최상위가 테이블(객체)이어야 합니다. 배열이나 단독 스칼라는 TOML 문서가 될 수 없고, null도 없습니다. 데이터 구조를 조정하면(배열을 키로 감싸고, null을 제거하거나 기본값을 주면) 변환됩니다.
- YAML은 JSON의 상위 집합인가요?
- 실질적으로는 그렇습니다. YAML 1.2는 사실상 모든 JSON 문서를 파싱하며, JSON을 YAML 설정에 붙여넣는 것이 보통 통하는 이유입니다. 반대는 성립하지 않습니다. YAML의 앵커, 여러 줄 스칼라, 태그에는 JSON 대응물이 없어 변환 시 펼쳐지거나 문자열화됩니다.