기능 소개
이 도구는 TOML을 JSON으로, JSON을 다시 TOML로 변환합니다. TOML은 Rust의 Cargo.toml, Python의 pyproject.toml, Hugo, Netlify, Deno 등 많은 도구가 쓰는 설정 형식입니다. 사람이 편집하기는 쉽지만 대부분의 스크립트, API, 검증 도구는 JSON을 기대합니다. 변환하면 JSON 도구로 설정을 살펴보거나, 프로그램에 넣거나, JSON 데이터를 깔끔한 설정 파일로 바꿀 수 있습니다.
사용 방법
- 입력란에 TOML을 붙여 넣거나,
.toml파일을 끌어다 놓거나, 예시를 누릅니다. - 입력하는 동안 JSON이 나타납니다. 들여쓰기는 공백 2칸 또는 4칸 중에서 고릅니다.
- 반대로 변환하려면 방향을 JSON → TOML로 바꿉니다. TOML 문서는 항상 테이블이므로 JSON의 최상위는 객체여야 합니다.
- 결과를 복사하거나 다운로드합니다.
TOML에 실수가 있으면 오류에 행과 열이 표시되고, 클릭하면 그 위치로 이동합니다. 흔한 실수는 닫는 따옴표 누락, 같은 키나 테이블을 두 번 정의하기, = 오른쪽에 따옴표 없는 문자열을 쓰는 것입니다.
예시
TOML 입력:
[server]
host = "0.0.0.0"
port = 8080
[[users]]
name = "Alice"
roles = ["admin", "editor"]
JSON 출력:
{
"server": { "host": "0.0.0.0", "port": 8080 },
"users": [{ "name": "Alice", "roles": ["admin", "editor"] }]
}
[server]는 중첩 객체가 되고, [[users]] 블록 하나마다 users 배열에 요소가 하나씩 추가됩니다.
타입 대응
- 문자열, 정수, 부동소수점 수, 불리언은 그대로 대응합니다. JavaScript의 안전한 범위를 넘는 큰 정수는 정밀도를 잃으므로 ID는 문자열로 두세요.
- 배열은 배열로, 테이블과 인라인 테이블은 객체로 대응합니다.
- 오프셋 날짜·시간, 로컬 날짜·시간, 로컬 날짜, 로컬 시간은 ISO 8601 문자열이 됩니다.
- 반대 방향에서
null은 TOML에 대응하는 값이 없으므로 경로와 함께 오류로 보고됩니다. 중첩 객체는[table]섹션이 되고, 객체 배열은[[array]]섹션이 됩니다.
자주 묻는 질문
› TOML 파일이 업로드되나요?
아니요. 파싱과 변환은 전적으로 브라우저에서 실행되므로 Cargo 매니페스트, pyproject 파일, 비밀 값이 든 설정 파일이 기기 밖으로 나가지 않습니다.
› 어떤 TOML 버전을 지원하나요?
TOML 1.0을 지원합니다. 테이블, 테이블 배열, 인라인 테이블, 여러 줄 문자열, 날짜와 시간, 16진수·8진수·2진수 정수를 모두 처리합니다.
› TOML 날짜는 JSON으로 어떻게 변환되나요?
JSON에는 날짜 타입이 없으므로 날짜와 시간은 ISO 8601 문자열이 됩니다. 예를 들어 2026-10-08은 "2026-10-08" 그대로 유지되고, 1979-05-27T07:32:00Z는 "1979-05-27T07:32:00.000Z"가 됩니다.
› JSON을 TOML로 바꿀 때 null에서 실패하는 이유는 무엇인가요?
TOML에는 null 값이 없습니다. 도구는 변환을 멈추고 database.password처럼 첫 번째 null의 경로를 알려 주므로, 해당 키를 지우거나 값을 넣으면 됩니다.
› 주석은 유지되나요?
아니요. JSON은 주석을 담을 수 없으므로 TOML의 주석은 버려지고, JSON에는 TOML로 옮길 주석이 없습니다.