it-box

YAML → JSON 변환기

YAML 데이터를 JSON 형식으로 변환합니다.

YAML → JSON 변환기 도구 열기

YAML 문서를 JSON으로 바꿔 설정 구조를 API 요청 형식이나 다른 도구의 입력으로 옮겨 봅니다.

사용 순서

  1. 왼쪽 입력 칸에 YAML을 붙여 넣습니다. 문법이 틀리면 오류 문구가 나옵니다.
  2. 출력 칸에 3칸 들여쓰기의 JSON이 표시됩니다.
  3. 배열 순서와 중첩 객체가 원래 YAML과 같은지 확인합니다.
  4. 결과를 복사해 JSON 편집기나 API 도구에 붙여 넣습니다.

예시

name: it-box, ports 아래 80과 443 목록, enabled: true로 된 YAML은 "name": "it-box", "ports": [80, 443], "enabled": true 구조의 JSON이 됩니다.

한계

변환은 YAML 1.2 기준이라 on, off, yes, no는 불리언이 아니라 문자열로 남습니다. 2024-01-01처럼 날짜처럼 보이는 값도 JSON에서는 문자열입니다. 앵커와 별칭은 값으로 펼쳐지고 병합 키는 풀어서 출력합니다. 주석은 JSON에 없으므로 사라집니다. 여러 문서가 들어 있는 YAML은 하나의 값으로 읽을 수 없어 오류가 납니다.

보안 주의

YAML 1.1 기반 도구는 on을 true로 읽습니다. 이 도구의 결과와 대상 시스템의 해석이 다를 수 있으므로, 불리언처럼 보이는 값이 있는 설정은 실제로 읽을 도구 기준으로 다시 확인하세요.

배경 지식

YAML은 들여쓰기로 구조를 나타내는 사람 친화적인 데이터 형식이고, JSON은 중괄호와 따옴표를 쓰는 기계 친화적인 형식입니다. 둘은 객체, 배열, 문자열, 숫자, 불리언, null이라는 같은 기본 타입을 가지므로 서로 대응시킬 수 있습니다. 쿠버네티스 매니페스트와 CI 설정은 YAML을 쓰고, 웹 API는 JSON을 주고받습니다.

YAML에는 JSON에 없는 기능이 많습니다. 앵커(&)와 별칭(*)으로 같은 블록을 재사용하고, 여러 줄 문자열, 주석, 날짜를 표현할 수 있습니다. JSON으로 바꾸면 주석은 사라지고 앵커는 값으로 펼쳐지므로, 변환 전후의 값을 비교하는 습관이 필요합니다. 앵커를 여러 곳에서 참조한 설정은 펼쳐진 뒤 크기가 커질 수 있습니다.

YAML 버전에 따라 on, off, yes, no를 해석하는 방식이 다릅니다. YAML 1.1은 이 값을 불리언으로 보고, YAML 1.2는 문자열로 봅니다. 설정 파일이 어떤 파서를 기준으로 쓰였는지 알아야 값을 정확하게 옮길 수 있습니다. 같은 YAML 파일이라도 도구마다 불리언 해석이 달라 문제가 생기는 일이 흔합니다.

자주 묻는 질문

YAML을 JSON으로 바꾸면 주석은 어떻게 되나요?

JSON 문법에는 주석이 없으므로 변환하면 모두 사라집니다. 설정의 의도를 남기려면 변환 전 원본 YAML을 보관하고, 필요한 설명은 별도 문서로 옮기세요.

들여쓰기에 탭을 쓰면 변환이 되나요?

YAML은 탭 들여쓰기를 허용하지 않으므로 파싱 오류가 납니다. 탭을 공백으로 바꾼 뒤 변환해야 합니다.

YAML 문서가 여러 개 이어져 있으면 어떻게 되나요?

--- 로 구분된 여러 문서는 하나의 값으로 읽을 수 없어 파싱 단계에서 오류가 납니다. 문서를 하나씩 나눠서 변환하세요.