DevToolPal
한국어

TOML JSON 변환기

TOML을 JSON으로, JSON을 TOML로 변환합니다. 테이블, 테이블 배열, 인라인 테이블, 날짜를 지원하며 오류 위치를 정확히 알려 줍니다.

로컬에서 실행, 업로드 없음

옵션

방향
JSON 들여쓰기

입력

0자 · 0 B

출력

0자 · 0 B

기능 소개

이 도구는 TOML을 JSON으로, JSON을 다시 TOML로 변환합니다. TOML은 Rust의 Cargo.toml, Python의 pyproject.toml, Hugo, Netlify, Deno 등 많은 도구가 쓰는 설정 형식입니다. 사람이 편집하기는 쉽지만 대부분의 스크립트, API, 검증 도구는 JSON을 기대합니다. 변환하면 JSON 도구로 설정을 살펴보거나, 프로그램에 넣거나, JSON 데이터를 깔끔한 설정 파일로 바꿀 수 있습니다.

사용 방법

  1. 입력란에 TOML을 붙여 넣거나, .toml 파일을 끌어다 놓거나, 예시를 누릅니다.
  2. 입력하는 동안 JSON이 나타납니다. 들여쓰기는 공백 2칸 또는 4칸 중에서 고릅니다.
  3. 반대로 변환하려면 방향을 JSON → TOML로 바꿉니다. TOML 문서는 항상 테이블이므로 JSON의 최상위는 객체여야 합니다.
  4. 결과를 복사하거나 다운로드합니다.

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로 옮길 주석이 없습니다.