본문으로 건너뛰기

JSON YAML 변환

JSON ⇄ YAML

키 순서를 유지한 채 양방향으로 변환하며 YAML은 블록·플로 스타일을 고를 수 있습니다.

YAML·JSON·TOML을 어느 방향으로든 브라우저 안에서 변환합니다. 파서를 npm에서 가져오지 않고 이 사이트에서 직접 썼기 때문에, 무엇을 거절하는지 — 앵커, 태그, 여러 문서 스트림 — 페이지에 그대로 적어 둘 수 있습니다. 조용히 잘못 읽는 대신입니다.

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

입력

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

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

JSON 출력

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

사용 방법

  1. 설정을 붙여넣습니다

    형식은 글에서 판별하고, 고르는 칸 아래에 무엇으로 읽었는지 적힙니다. 판별이 틀렸으면 직접 고르세요. JSON은 YAML로도 유효해서 `{ }` 문서는 어느 쪽으로든 읽힐 수 있습니다.

  2. 변환할 형식을 고릅니다

    쿠버네티스 매니페스트나 CI 파일이면 YAML, 프로그램이 파싱할 것이면 JSON, Rust나 Python 프로젝트 파일이면 TOML입니다.

  3. 출력만 보지 말고 경고를 읽습니다

    변환에 성공해도 뜻이 달라졌을 수 있습니다. TOML로 가면서 사라진 `null`, YAML 1.2에서 문자열로 읽힌 `yes` 같은 것들입니다. 이런 건 감추지 않고 출력 아래 안내에 나옵니다.

  4. 거절당하면 범위 목록을 펼칩니다

    아래 접힌 부분에 이 파서들이 다루지 않는 문법이 이유와 함께 전부 적혀 있습니다. 거절할 때는 해석해야 하는 파서 오류 대신 그 목록을 가리킵니다.

자주 묻는 질문

앵커와 별칭은 왜 거절되나요?

`*base`를 제대로 펼치려면 YAML의 병합 의미론을 구현해야 하는데, 그걸 미묘하게 틀리면 보기에는 맞지만 다른 것이 배포되는 파일이 나옵니다. 붙여넣기 전에 손으로 펼치면 확실하고, 여기서 짐작하는 건 그렇지 않습니다. `<<: *base`도 같은 이유입니다.

`yes`가 왜 문자열이 됐나요?

YAML 1.2 core 스키마가 그렇게 정하고 있어서입니다. 불리언은 `true`와 `false`뿐입니다. 아직 운영에서 쓰이는 일부 YAML 1.1 파서는 이걸 불리언으로 읽습니다. 배포 결과를 바꾸는 종류의 차이라서, 이런 값이 나오면 경고에 적어 알려 줍니다.

TOML로 갈 때 `null`은 어떻게 되나요?

버리고 경고로 알립니다. TOML에는 null 값 자체가 없습니다. 키를 빼거나 대체값을 만들어 넣는 두 가지뿐인데, 만들어 넣으면 누군가의 설정에 문자열 `"null"`이 들어가게 됩니다.

주석이 유지되나요?

아니요. 변환은 데이터 모델을 거쳐 가는데 주석은 데이터가 아닙니다. JSON에는 넣을 자리조차 없습니다. 주석을 살려야 한다면 이 사이트의 YAML·TOML 정렬 도구가 제자리에서 들여쓰기만 고치고 주석은 그대로 둡니다.

이 도구로 이어지는 것

다음 단계

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