onlinetools.dev

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 대응물이 없어 변환 시 펼쳐지거나 문자열화됩니다.
관련 도구