본문으로 건너뛰기

JSON TOML 변환

JSON ⇄ TOML

중첩 객체를 테이블 헤더로 대응시켜 JSON과 TOML을 상호 변환합니다.

같은 변환기의 JSON ⇄ TOML 쪽입니다. `Cargo.toml`이나 `pyproject.toml`, `netlify.toml`을 스크립트가 읽을 수 있는 형태로 바꿔야 할 때, 또는 그 반대일 때 씁니다. TOML은 값의 종류에 대해 JSON보다 엄격한데, 그 차이는 뜻밖의 결과가 아니라 경고로 나옵니다.

🔒 브라우저 안에서만 처리jsontomlconvert
입력 형식
YAML로 읽는 중입니다.
출력 형식

입력

.yaml·.json·.toml 파일 놓기

이 탭에서 읽습니다. 올라가지 않습니다.

JSON 출력

npm에서 가져오지 않고 여기서 직접 썼습니다. 그래서 다루는 범위가 물려받은 것이 아니라 고른 것입니다. 이 목록에 있는 것은 잘못 읽는 대신 이름을 대며 거절합니다.

사용 방법

  1. TOML이나 JSON을 붙여넣습니다

    `[section]` 머리와 따옴표 없는 키가 뚜렷해서 둘을 구별하는 건 쉽습니다. 확실히 하고 싶으면 입력 형식을 직접 고르면 됩니다.

  2. 출력 형식을 TOML이나 JSON으로 둡니다

    TOML로 갈 때는 모양이 허락하는 한 인라인 테이블 대신 `[section]` 머리로 냅니다. 사람이 손으로 쓴 설정 파일이 그렇게 생겼기 때문입니다.

  3. TOML이 담지 못한 것을 확인합니다

    null은 버려지고, TOML에서 나온 날짜·시간은 JSON에 날짜 타입이 없어서 문자열이 됩니다. 둘 다 해당하면 경고에 적힙니다.

자주 묻는 질문

날짜가 왜 문자열이 됐나요?

TOML에는 오프셋이 붙은 날짜·시간, 로컬 날짜, 로컬 시각이 정식 타입으로 있지만 JSON에는 하나도 없습니다. 글자를 그대로 옮기는 것이 그나마 손실 없어 보이는 유일한 방법이고, 다시 TOML로 되돌리면 원래의 날짜 리터럴이 아니라 따옴표 친 문자열이 나옵니다.

타입이 섞인 배열도 변환되나요?

JSON으로는 됩니다. TOML로는 그대로 냅니다. TOML 1.0은 타입이 섞인 배열을 허용하지만 실제로 쓰이는 여러 TOML 리더와 TOML 0.5는 허용하지 않습니다. 그러니 커밋하기 전에 한 번 더 볼 만합니다.

중복된 키를 잡아 주나요?

잡습니다. 같은 키를 두 번 정의하거나 테이블을 다시 정의하면 TOML 오류이고, 관대한 리더처럼 마지막 값을 조용히 취하는 대신 오류로 알립니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.