it-box

JSON → TOML 변환기

JSON을 파싱해 TOML로 변환합니다.

JSON → TOML 변환기 도구 열기

JSON 객체를 TOML로 바꿔 설정 파일이나 패키지 메타데이터를 옮길 때 씁니다.

사용 순서

  1. 왼쪽 입력 칸에 JSON 객체를 넣습니다. 최상위는 객체여야 합니다.
  2. 오른쪽에 TOML 결과가 표시됩니다.
  3. 테이블과 배열 테이블이 원하는 구조인지 확인합니다.
  4. 결과를 TOML 파일에 붙여 넣고 대상 도구로 검증합니다.

예시

{"name":"it-box","enabled":true}는 name = "it-box"와 enabled = true 두 줄의 TOML이 됩니다.

한계

최상위가 객체가 아니면 TOML로 표현할 수 없어 빈 결과가 나옵니다. null 값은 TOML에 없어서 변환이 실패하거나 해당 키가 빠질 수 있습니다. 입력은 JSON5로 읽으므로 주석과 끝 쉼표를 허용합니다. JSON에는 날짜 타입이 없어서 날짜 값은 문자열로 남습니다.

보안 주의

JSON의 숫자는 정수와 실수를 구분하지 않고 JavaScript 숫자로 읽습니다. 2의 53제곱을 넘는 정수 ID는 정밀도가 깨지므로, 이 값이 있으면 문자열로 바꾼 뒤 넣으세요.

배경 지식

TOML은 사람이 직접 고치는 설정 파일을 위한 형식입니다. 등호로 키와 값을 잇고 [섹션]으로 구조를 나누며, 날짜, 정수, 실수, 불리언, 배열을 각각 분명한 문법으로 표현합니다. JSON과 달리 주석을 달 수 있어서 프로젝트 설정에 많이 씁니다. 주석 덕분에 설정 값의 이유를 함께 적어 둘 수 있습니다.

JSON을 TOML로 바꾸는 작업은 중첩 객체를 테이블로 바꾸는 일입니다. 최상위 객체의 키는 루트 키가 되고, 안쪽 객체는 [parent.child] 형태의 테이블이 됩니다. 객체 배열은 [[array]] 배열 테이블로 나옵니다. 배열 테이블 블록은 같은 이름이 반복되므로 키가 빠진 항목이 있으면 구조가 어긋납니다.

TOML과 JSON은 모두 키와 값의 구조라서 대응이 쉽지만, TOML은 최상위가 항상 테이블이어야 하고 null이 없습니다. 이 두 제약 때문에 JSON의 모든 구조가 그대로 옮겨지지는 않습니다. 변환 전에 JSON에서 null을 제거하거나 기본값으로 채워 두면 도움이 됩니다.

자주 묻는 질문

배열 테이블과 일반 테이블은 어떻게 구분하나요?

[table]은 키가 정해진 객체 하나이고, [[table]]은 같은 이름의 객체가 여러 번 나오는 배열입니다. JSON 배열 안에 객체가 여러 개 있으면 [[ ]] 형식으로 나옵니다.

JSON에 날짜를 넣으면 TOML 날짜가 되나요?

아닙니다. JSON에는 날짜 타입이 없으므로 "2024-01-01" 같은 값은 따옴표가 붙은 문자열이 됩니다. TOML 날짜 타입이 필요하면 결과에서 따옴표를 직접 지우세요.

TOML 결과에서 키 순서는 유지되나요?

보통 JSON 객체의 입력 순서를 따르지만, 정수처럼 보이는 키는 앞으로 이동할 수 있습니다. 순서가 중요한 설정이라면 결과를 원본과 비교하세요.