본문으로 건너뛰기

YAML에서 JSON 형식으로 변환

yaml 라이브러리(YAML 1.2 core schema)로 YAML 문서 하나를 파싱하여 들여쓰기된 JSON으로 출력합니다. 주석은 제거되고, 앵커와 별칭은 펼쳐지며, yes나 2024-01-01 같은 값은 문자열로 유지됩니다.

YAML로 작성한 설정을 JSON만 받는 API나 JSON Schema 검증기에 보낼 때.

YAML

이럴 때 사용하세요

  • YAML로 작성한 설정을 JSON만 받는 API나 JSON Schema 검증기에 보낼 때.
  • CI나 Kubernetes 파일의 실제 타입을 확인할 때. 예를 들어 버전이 문자열인지 숫자인지.

사용 방법

  1. YAML 문서 하나를 붙여 넣거나 .yaml/.yml 파일을 불러옵니다.
  2. 오류가 표시되면 해당 행에서 들여쓰기, 중복 키, --- 구분자를 확인합니다.
  3. JSON 출력에서 문자열과 숫자를 확인한 뒤 복사합니다.

YAML 입력

# deployment settings
service: billing-api
replicas: 2
version: "1.10"
enabled: yes
ports:
  - 80
  - 443
env:
  LOG_LEVEL: info

JSON

{
  "service": "billing-api",
  "replicas": 2,
  "version": "1.10",
  "enabled": "yes",
  "ports": [
    80,
    443
  ],
  "env": {
    "LOG_LEVEL": "info"
  }
}

세부 정보 및 제한 사항

파싱은 브라우저에서 실행됩니다. 출력은 항상 2칸 들여쓰기 JSON이며 압축 옵션은 없습니다.

YAML 1.2 규칙이 적용됩니다. yes/no/on/off는 불리언이 아니라 문자열이고, 따옴표 없는 날짜도 문자열로 유지됩니다. 0o17은 8진수(15)입니다.

병합 키(<<: *anchor)는 병합되지 않고 리터럴 "<<" 키로 나타납니다. 한 매핑 안의 중복 키는 오류입니다.

2^53을 넘는 정수는 JSON에서 정밀도를 잃습니다. YAML에서 긴 ID는 따옴표로 감싸세요.

FAQ

---로 구분된 여러 문서가 있는 파일도 변환할 수 있나요?

아니요. 문서가 여러 개면 "Source contains multiple documents" 오류가 납니다. 한 번에 문서 하나씩 붙여 넣으세요. 맨 앞의 --- 하나는 괜찮습니다.

enabled: yes가 JSON에서 왜 문자열인가요?

파서가 YAML 1.2를 따르며, 여기서는 true와 false만 불리언입니다. JSON 불리언이 필요하면 true/false로 쓰세요.

앵커와 별칭을 지원하나요?

네. *base 같은 별칭은 앵커 값의 복사본으로 대체됩니다. 다만 YAML 1.1의 병합 키 <<는 적용되지 않습니다.

사양 및 참고 자료