JSON → YAML 변환기
왼쪽에 JSON을 붙여넣으면 오른쪽에 일관된 들여쓰기의 YAML 1.2로 변환돼요. 모든 처리는 브라우저 안에서 이뤄지며 업로드가 필요 없습니다.
- 왼쪽 텍스트 영역에 JSON을 붙여넣어 주세요.
- "YAML로 변환" 버튼을 누르면 오른쪽에 결과가 표시돼요.
- 복사하거나 다운로드 버튼으로 data.yaml 로 저장할 수 있어요.
- 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 왕복도 가능한가요?
데이터 의미는 보존돼요. 다만 공백과 따옴표 처리가 정규화되기 때문에 바이트 수준으로 동일하지는 않아요. 안정적인 정규형이 필요하면 변환 전에 키를 정렬해 두세요.