JSON을 TOML 형식으로 변환 — Numio
JSON 객체를 TOML로 변환합니다. 중첩 객체는 [table] 섹션, 객체 배열은 [[array of tables]]가 되며, TOML에는 null이 없으므로 값이 null인 키는 삭제됩니다.
JSON 설정을 pyproject.toml, Cargo.toml, wrangler.toml 또는 Hugo 설정 문법으로 바꿀 때.
이럴 때 사용하세요
- JSON 설정을 pyproject.toml, Cargo.toml, wrangler.toml 또는 Hugo 설정 문법으로 바꿀 때.
- 스크립트가 JSON으로 생성한 설정을 TOML 기반 설정 파일로 옮길 때.
사용 방법
- JSON 객체(루트는 배열이 아닌 객체여야 함)를 왼쪽 편집기에 붙여 넣거나, 파일 불러오기 버튼으로 UTF-8 파일을 엽니다.
- 오른쪽 TOML을 확인합니다. 스칼라 키가 먼저 오고 그다음에 [table]과 [[array]] 섹션이 옵니다.
- 결과를 복사하고, 설정을 교체하기 전에 대상 도구 문서의 키와 비교합니다.
JSON 객체
{
"title": "My App",
"port": 8080,
"debug": false,
"owner": { "name": "Ada", "since": "2024-01-05T10:00:00Z" },
"servers": [
{ "host": "a.example.com", "weight": 3 },
{ "host": "b.example.com", "weight": 1 }
],
"ports": [80, 443]
}TOML
title = "My App" port = 8_080 debug = false ports = [ 80, 443 ] [owner] name = "Ada" since = "2024-01-05T10:00:00Z" [[servers]] host = "a.example.com" weight = 3 [[servers]] host = "b.example.com" weight = 1
세부 정보 및 제한 사항
1000 이상의 정수에는 밑줄 구분자가 들어갑니다(8080은 8_080). 유효한 TOML이며 파싱하면 같은 숫자입니다.
날짜 문자열은 따옴표로 감싼 문자열로 남습니다. JSON에는 날짜 타입이 없으므로 TOML 날짜·시간 값은 생성되지 않습니다.
값이 null인 키는 알림 없이 생략되고, JSON의 1.0은 정수 1로 기록됩니다.
@iarna/toml로 브라우저에서 실행됩니다. 객체와 다른 값이 섞인 목록은 TOML 테이블 배열에 담을 수 없어 거부됩니다. 하위 테이블은 2칸 들여쓰기되지만 TOML은 이 들여쓰기를 무시합니다.
FAQ
루트가 JSON 배열이어도 변환되나요?
아니요. TOML 문서는 테이블이어야 하므로, 페이지에서 JSON이 배열이라고 알려 주고 {"items": [...]}처럼 객체로 감싸도록 안내합니다.
null 값은 어떻게 되나요?
키가 삭제됩니다. {"a": null}의 출력은 비어 있습니다. 대상이 그 키를 기대한다면 빈 문자열을 쓰거나 의도적으로 키를 제거하세요.
숫자에 밑줄이 들어가는 이유는 무엇인가요?
직렬화기가 큰 정수를 _ 자릿수 구분자로 포맷하며, TOML 사양이 이를 허용합니다. 모든 TOML 파서는 8_080을 8080으로 읽습니다.