JSON → YAML 변환기
JSON 데이터를 YAML 형식으로 변환합니다.
JSON 객체를 YAML로 바꿔 쿠버네티스나 CI 설정 파일의 초안을 빠르게 만듭니다.
사용 순서
- 입력 칸에 JSON을 붙여 넣습니다. 주석과 끝 쉼표도 받아들입니다.
- 오른쪽에 YAML 결과가 2칸 들여쓰기로 표시됩니다.
- 배열의 하이픈 목록과 따옴표가 필요한 값에만 붙었는지 확인합니다.
- 복사해 YAML 파일에 붙이고 대상 도구의 검증 명령으로 한 번 더 확인합니다.
예시
{"name":"it-box","ports":[80,443],"enabled":true}는 name: it-box, ports 아래 - 80, - 443 목록, enabled: true로 바뀝니다.
한계
입력은 JSON5 파서로 읽으므로 주석, 따옴표 없는 키, 끝 쉼표를 허용합니다. 표준 JSON만 받는 시스템에서는 거부될 수 있습니다. 출력은 YAML 기본 스타일이라 여러 줄 문자열이나 특정 따옴표 스타일은 원하는 모양으로 나오지 않을 수 있습니다. 정수처럼 보이는 키는 JavaScript 객체 규칙에 따라 순서가 바뀔 수 있습니다.
보안 주의
JSON5는 표준 JSON보다 느슨하게 읽으므로 여기서 통과한 값이 실제 서비스의 JSON 파서에서는 오류가 날 수 있습니다. 배포 설정으로 쓰기 전에 원래 입력을 표준 JSON 파서로도 한 번 검사하세요.
배경 지식
YAML은 JSON의 상위 집합에 가깝게 설계되어 대부분의 JSON 문서가 YAML 1.2로 그대로 읽힙니다. 그래서 YAML 파서가 JSON을 읽을 수 있고, 반대로 사람이 고치기 쉬운 형태로 바꾸려면 들여쓰기 방식의 YAML이 편합니다. 주석을 달거나 여러 줄 문자열을 넣을 수 있는 것도 설정 파일에서 YAML을 선호하는 이유입니다.
쿠버네티스 매니페스트, GitHub Actions, Docker Compose처럼 많은 인프라 도구가 YAML을 씁니다. API 응답처럼 JSON으로 받은 데이터를 설정 파일로 옮길 때 이 변환이 자주 필요합니다. 중첩 객체는 들여쓰기로, 배열은 하이픈으로 표현됩니다.
변환할 때 주의할 점은 타입이 바뀌는 경우입니다. JSON의 문자열 "80"은 YAML에서도 따옴표가 붙어 문자열로 남지만, 따옴표 없이 쓰면 숫자로 읽힙니다. 같은 값이라도 대상 도구가 기대하는 타입에 따라 결과의 의미가 달라집니다. 변환 후에는 숫자처럼 보이는 문자열의 따옴표가 유지되었는지 한 번 살펴보세요.
자주 묻는 질문
JSON을 YAML로 바꾸면 값이 달라지나요?
의미는 같아야 하지만 표기 차이로 타입이 바뀌는 경우가 있습니다. 문자열 yes는 YAML 1.1 파서에서 불리언이 될 수 있으므로, 변환 후 원래 JSON과 값을 하나씩 비교하세요.
YAML 결과 끝에 줄바꿈이 남는데 문제가 되나요?
보통 문제가 되지 않습니다. YAML 파서는 마지막 줄바꿈을 무시하므로 파일을 저장할 때 그대로 두어도 됩니다.
최상위가 배열인 JSON도 변환되나요?
됩니다. YAML은 최상위에 배열을 둘 수 있어서 하이픈 목록 형태로 나옵니다. 대상 도구가 객체를 요구하면 그 형식에 맞게 한 단계 감싸야 합니다.