YAML JSON 변환기
빠르고 안전한 YAML을 JSON으로 변환합니다. 구성 파일 및 데이터 분석에 적합합니다.
빠르고 안전한 YAML을 JSON으로 변환합니다. 구성 파일 및 데이터 분석에 적합합니다.
YAML과 JSON은 밀접하게 관련된 형식입니다. JSON은 기술적으로 YAML 1.2의 엄격한 하위 집합이며 둘 사이의 변환은 일반적으로 간단합니다. YAML은 주석, 이스케이프가 없는 여러 줄 문자열, 앵커 및 별칭 참조, 보다 유연한 인용, 자연스러운 문서 레이아웃과 유사한 들여쓰기 기반 구조 등 JSON에 없는 인간 친화적인 기능을 추가합니다. 이로 인해 YAML은 구성 파일(Kubernetes 매니페스트, GitHub Actions 워크플로, Docker Compose)에 널리 사용되는 반면 JSON은 API 페이로드를 지배합니다.
YAML을 JSON으로 변환한다는 것은 일반적으로 기계가 더 쉽게 구문 분석할 수 있는 형식, 즉 HTTP API의 공용어인 형식으로 교환하여 YAML의 인간 친화적인 추가 기능을 포기하는 것을 의미합니다. 댓글이 삭제됩니다(JSON에는 댓글이 없습니다). 앵커 참조는 참조 값으로 확인됩니다. 여러 줄 문자열은 줄 바꿈이 포함된 표준 JSON 문자열로 축소됩니다.
이 변환기는 JavaScript에서 가장 널리 사용되는 YAML 라이브러리인 js-yaml을 사용하여 YAML을 구문 분석합니다. 출력은 선택적 들여쓰기와 함께 JSON.stringify를 사용하여 생성됩니다. 변환은 흐름 스타일, 블록 스타일, 스칼라, 시퀀스, 매핑, 앵커, 별칭 및 표준 태그 유형을 포함한 모든 표준 YAML 1.2 구문을 처리합니다.
대부분의 API와 많은 프로그래밍 환경에서는 JSON을 기대합니다. YAML로 작성된 구성 파일은 JSON만 허용하는 코드나 서비스와 통합할 때 JSON으로 변환해야 합니다. JSON을 위한 도구도 더욱 풍부해졌습니다. jq, JSON 경로, JSON 스키마, 광범위한 유효성 검사기 및 변환기 생태계는 모두 JSON 입력을 가정합니다.
JSON은 YAML과 달리 모호하지 않습니다. YAML의 유연성은 YAML 1.1에서 'no'와 같은 문자열을 부울 false로 구문 분석하고, 버전 문자열을 부동 소수점으로 구문 분석하고, 들여쓰기 오류로 인해 자동 구조 변경이 발생하는 등 구문 분석에 놀라움을 선사합니다. JSON으로 변환하면 데이터가 덜 모호한 형식으로 고정됩니다.
YAML을 붙여넣고 JSON을 가져옵니다.
js-yaml은 YAML 1.1 문제('no'-as-false 문제, 0o 접두사가 없는 8진수)에 대한 선택적 지원을 통해 YAML 1.2를 구현합니다. 파서는 숫자, 문자열, 부울, null, 배열 및 일반 객체와 같은 기본 유형을 사용하여 JavaScript 객체 트리를 생성합니다.
JSON.stringify는 객체 트리를 JSON으로 직렬화합니다. 선택적 들여쓰기는 보기 좋게 인쇄된 출력을 생성합니다. 그것이 없으면 결과는 컴팩트한 한 줄 JSON입니다. 특수 값(NaN, Infinity, 정의되지 않음)은 유효한 JSON이 아닙니다. 변환기는 존재하는 경우 이를 null로 강제 변환합니다.
극단적인 경우: YAML 타임스탬프는 JSON에서 ISO-8601 문자열이 됩니다. YAML 바이너리 데이터(base64로 인코딩됨)는 문자열이 됩니다. JSON에는 참조 구문이 없으므로 앵커와 별칭은 JSON에서 중복 값으로 확인됩니다.