JSON → YAML 변환기

왼쪽에 JSON을 붙여넣으면 오른쪽에 일관된 들여쓰기의 YAML 1.2로 변환돼요. 모든 처리는 브라우저 안에서 이뤄지며 업로드가 필요 없습니다.

  1. 왼쪽 텍스트 영역에 JSON을 붙여넣어 주세요.
  2. "YAML로 변환" 버튼을 누르면 오른쪽에 결과가 표시돼요.
  3. 복사하거나 다운로드 버튼으로 data.yaml 로 저장할 수 있어요.
  4. JSON이 유효하지 않으면 오류 메시지가 위치를 알려줘요.
어떤 도구인가요?

JSON을 동등한 YAML 1.2로 변환합니다. 객체는 매핑으로, 배열은 시퀀스로, 숫자/부울/null/문자열은 타입을 그대로 유지해요. 출력은 기본적으로 2칸 들여쓰기와 100자 줄 폭을 사용합니다. JSON → YAML → JSON 왕복 변환을 해도 데이터 의미는 보존되지만, 주석이나 키 정렬 같은 미묘한 부분은 JSON 쪽 제약이 그대로 따라옵니다.

예시

JSON 입력:

{"name":"Ada","tags":["math","logic"],"active":true}

YAML 출력:

name: Ada
tags:
  - math
  - logic
active: true

자주 만나는 JSON 오류와 해결 방법

YAML로 변환하려면 먼저 JSON이 유효해야 해요. 파서가 줄과 열 번호를 알려주니 아래 패턴을 참고해 빠르게 수정할 수 있습니다.

  • 뒤따라오는 쉼표. {"a": 1, "b": 2,} 는 잘못된 형식이에요. JSON은 객체나 배열 마지막 요소 뒤의 쉼표를 허용하지 않습니다.
  • 작은따옴표 사용. {'a': 1} 은 잘못됐어요. JSON 문자열과 키는 큰따옴표(")만 사용합니다.
  • 따옴표 없는 키. {a: 1} 은 잘못됐어요. JavaScript 객체 리터럴에서는 가능하지만 JSON에서는 키도 큰따옴표로 감싸야 합니다.
  • 주석. // 나 /* */ 주석은 엄격한 JSON에서 허용되지 않아요. 변환 전에 제거하거나, # 주석을 지원하는 YAML 결과에 직접 추가하세요.
  • 스마트 따옴표. 문서 편집기에서 복사할 때 " 가 곡선 따옴표로 바뀌면 JSON 파서가 거부해요. 일반 텍스트 편집기를 거쳐 붙여넣으세요.
  • NaN / Infinity. JSON은 NaN, Infinity, -Infinity를 표현할 수 없어요. 데이터에 포함돼 있다면 null로 직렬화(정보 손실)하거나 문자열 "NaN"으로 다루는 방법 중 선택해야 합니다.
자주 묻는 질문

왜 YAML 결과에는 주석이 없나요?

JSON에는 주석 문법이 없어서 옮길 주석 자체가 없어요. 주석이 들어간 YAML이 필요하면 변환 후 직접 추가하세요. 일부 팀이 `_comment` 필드로 주석을 흉내내기도 하지만, 그건 YAML에서도 일반 키로 옮겨지지 실제 주석이 되지는 않아요.

키 순서는 유지되나요?

네. JSON 객체의 키 순서가 YAML 매핑 순서로 그대로 유지돼요. 알파벳 정렬이 필요하면 변환 전에 JSON을 정렬해 주세요.

깊이 중첩된 구조는 어떻게 표현되나요?

한 단계마다 2칸 들여쓰기를 사용하고, 시퀀스는 블록 스타일(`-` 로 시작하는 한 줄 한 항목)로 출력돼요. 빈 객체와 배열만 각각 `{}`, `[]` 의 흐름 스타일로 표현됩니다.

바이너리 데이터도 처리되나요?

JSON에는 네이티브 바이너리 타입이 없어서 보통 base64 문자열로 들어와요. 결과 YAML도 동일한 base64 문자열을 그대로 보존합니다. YAML의 `!!binary` 형식이 필요하면 직접 변환해야 해요.

API 키 같은 민감한 JSON에도 안전한가요?

네. 모든 처리는 브라우저 안에서 진행돼요. 변환 버튼을 눌러도 네트워크 요청이 발생하지 않는 것을 개발자 도구에서 직접 확인할 수 있어요.

JSON → YAML → JSON 왕복도 가능한가요?

데이터 의미는 보존돼요. 다만 공백과 따옴표 처리가 정규화되기 때문에 바이트 수준으로 동일하지는 않아요. 안정적인 정규형이 필요하면 변환 전에 키를 정렬해 두세요.