JSON to YAML 변환기

키 순서를 유지한 채 JSON과 YAML 상호 변환

키 순서를 유지한 채 JSON과 YAML 상호 변환자동 감지
JSON 입력
YAML 출력

도구 설명

JSON to YAML 변환기 정보

이 변환기는 JSON을 YAML로, YAML을 다시 JSON으로 바꿔 줍니다. 덕분에 같은 설정을 API 페이로드와 Kubernetes 매니페스트, Docker Compose 파일, GitHub Actions 워크플로, OpenAPI 문서 사이에서 다시 타이핑하지 않고 옮길 수 있습니다.

입력하는 동안 변환이 진행되고, 키 순서는 작성한 그대로 보존되며, 들여쓰기는 2칸 또는 4칸으로 지정할 수 있습니다. 문법 오류는 정확한 행과 열을 알려 줍니다.

JSON to YAML 변환하는 방법

  1. 입력 패널에 JSON을 붙여 넣습니다. 버튼을 누를 필요 없이 YAML 결과가 즉시 나타납니다.
  2. 방향 전환 버튼으로 YAML to JSON으로 바꿉니다. 예를 들어 JSON만 읽는 스크립트에 매니페스트를 넣어야 할 때 사용합니다.
  3. 저장소 스타일에 맞춰 2칸 또는 4칸 들여쓰기를 선택합니다. Kubernetes와 GitHub Actions 파일은 보통 2칸을 씁니다.
  4. 입력이 올바르지 않으면 표시된 행과 열을 확인해 그 지점을 고치십시오. 출력은 알아서 다시 갱신됩니다.

이럴 때 사용합니다

  • kubectl이 덤프한 JSON 리소스를 커밋할 수 있는 읽기 좋은 YAML 매니페스트로 바꿀 때.
  • 생성된 설정을 테스트하면서 Docker Compose 서비스 블록을 변환할 때.
  • OpenAPI 명세를 JSON과 YAML 형태 사이에서 옮길 때. 도구마다 선호하는 형식이 다르기 때문입니다.
  • JSON으로 생성된 GitHub Actions 워크플로 조각을, 러너가 기대하는 YAML로 다시 쓸 때.

변환을 깨뜨리는 YAML 규칙

YAML 1.2는 사실상 JSON의 상위 집합에 가까우므로, 유효한 JSON은 대개 유효한 YAML이기도 합니다. 문제는 반대 방향에서 생깁니다. YAML은 JSON이 하지 않는 타입 추측을 하기 때문입니다.

  • 노르웨이 문제: NO, no, yes, on, off는 YAML 1.1 파서에서 불리언으로 읽히므로 국가 코드 NO가 false가 되어 버립니다. 이런 값은 따옴표로 감싸십시오.
  • 앞자리 0: 010 같은 값은 문자열이 아니라 8진수로 읽힐 수 있습니다. 식별자, 우편번호, 품번은 따옴표로 감싸십시오.
  • 버전 번호: 따옴표 없는 1.10 은 실수 1.1 이 되어 끝자리 0이 사라집니다.
  • 들여쓰기에는 반드시 공백을 쓰고 탭은 쓰지 말아야 하며, 값을 여는 콜론 뒤에는 공백이 하나 필요합니다.

JSON → YAML 자주 묻는 질문

변환기가 제 키 순서를 바꾸나요?
아닙니다. 키는 입력한 순서 그대로 출력되므로 버전 관리에서 diff가 작게 유지됩니다.
주석은 어떻게 되나요?
JSON에는 주석 문법이 없으므로 JSON to YAML 방향은 주석을 만들어 낼 수 없고, YAML to JSON 방향은 원본에 있던 주석을 버립니다. 주석이 중요하다면 원본을 보관하십시오.
출력에 앵커와 별칭이 포함되나요?
아닙니다. 반복되는 구조도 전부 펼쳐서 기록하므로, 별칭을 지원하지 않는 파서도 결과를 읽을 수 있습니다.
제 설정 파일이 어딘가로 업로드되나요?
아닙니다. 구문 분석과 변환은 js-yaml을 사용해 브라우저 안에서 이루어지므로, 붙여 넣은 내용이 기기를 벗어나거나 wetool.site에 저장되는 일은 없습니다.
변환 후 YAML 값의 타입이 왜 바뀌나요?
YAML은 따옴표 없는 스칼라의 타입을 추측합니다. YAML 원본에서 값을 따옴표로 감싸면 JSON 문자열로 변환됩니다.

JSON과 YAML 비교

JSON은 엄격하고 모호함이 없어 전송 형식으로 적합하지만, 주석이 없고 깊게 중첩되면 지저분해집니다. YAML은 리뷰할 때 읽기 좋은 대신 타입 추측과 들여쓰기 민감성이라는 대가를 치릅니다. 대부분의 팀은 설정을 YAML로 유지하고 경계에서 JSON을 주고받는데, 이 양방향 변환이 바로 그 지점을 위한 것입니다.

커밋 전 따옴표 점검 목록

변환 때문에 배포가 깨지는 사례는 대부분 값이 타입을 잃으면서 발생합니다. YAML 출력에서 다음 경우를 훑어보십시오.

  • 국가 및 언어 코드, 특히 NO 와 단어처럼 읽히는 두 글자 값.
  • 실제로는 식별자인 숫자: 계좌번호, 자리를 채운 포트 번호, 앞자리가 0인 모든 값.
  • 1.10 이나 3.20 같은 버전과 이미지 태그. 실수로 취급되면 끝자리 0을 잃습니다.