YAML을 JSON으로 변환하기 (그리고 들여쓰기 오류 피하기)
YAML 1.2 이후로는 모든 JSON 문서가 유효한 YAML입니다. YAML 설정을 JSON으로 변환하면서 들여쓰기와 타 입 추론의 함정에 유의하세요.
YAML과 JSON은 친척이다
YAML 1.2는 JSON의 엄격한 상위집합입니다. 따라서 어떤 JSON 문서도 이미 유효한 YAML입니다. YAML을 JSON으로 변환한다는 것은 주로 들여쓰기 기반 구조를 중괄호와 대괄호로 옮겨 쓰는 일입니다.
들여쓰기 규칙
YAML은 들여쓰기에 탭을 금지합니다 — 공백을 쓰고, 형제 키는 같은 깊이로 맞추세요. 떠도는 탭이나 잘못 정렬된 키는 가장 흔한 YAML 파싱 오류입니다.
노르웨이 문제
따옴표 없는 NO, yes, on, off는 일부 파서가 불리언으로 읽어, 국가 코드 NO가 false가 되어 버립니다. 그런 값은 문자열을 유지하도록 따옴표로 감싸세요.
안전하게 변환하기
먼저 YAML을 검증한 다음 변환하세요. 모호한 스칼라는 따옴표를 두고, 숫자・날짜・선행 0이 있는 값이 기대한 타입을 유지하는지 확인하세요.
여러 문서로 된 YAML 스트림
하나의 YAML 파일에 '---'로 구분된 여러 문서가 들어 있을 수 있습니다. JSON에는 대응 개념이 없습니다 — 각 문서를 따로 변환하고, 다운스트림 도구가 한꺼번에 필요로 한다면 JSON 배열로 묶으세요. Kubernetes 매니페스트가 대표적인 경우입니다.
Anchor와 alias
YAML의 & 앵커와 * 별칭은 참조로 노드를 재사용하게 해 주지만, JSON에는 별칭이 없습니다. 안전한 변환기는 각 별칭을 앵커 값의 복사본으로 풀어 문서가 커지게 됩니다. 다시 YAML로 돌리면 원래의 공유 관계는 잃는다는 점을 유의하세요.
YAML이 충실도를 잃을 때
주석, !!binary 같은 태그 어노테이션, 사용자 정의 태그, block과 flow 스타일의 차이, 키 순서는 YAML이 JSON이 될 때 사라집니다. 순수 데이터 교환이라면 괜찮지만, 사람 손으로 다시 편집할 설정 파일이라면 YAML을 진짜 원본으로 두는 편이 좋습니다.
JSON 수리 가이드
토픽 허브
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
구체적인 가이드
- Base64 문자열 디코드 방법 (그리고 JWT 페이로드)
- URL 인코딩: 쿼리 파라미터와 경로를 퍼센트 인코드하기
- JSON을 CSV로 변환: 객체 배열을 펴기
- JSON을 XML로 변환: 루트, 속성, 배열
- JSON을 문자열 리터럴로 이스케이프하기 (그리고 이중 인코드된 JSON 디코드)
- JSON의 후행 쉼표 고치기
- JSON의 작은따옴표 고치기
- JSON의 따옴표 없는 키 고치기
- LLM이 만든 JSON 고치기
- JSON 파싱 오류 “Expected Property Name” 고치기
- JSON vs JavaScript 객체 리터럴
- API 요청 전에 JSON 검증하기
- JSON 포맷터 vs JSON Repair
- JSON Unexpected Token 오류 고치기
- JSON에서 JavaScript 객체 변환기