JSON → YAML

JSON을 붙여 넣으면 깔끔한 YAML이 돌아옵니다, 적절한 두 칸 들여쓰기, 필요할 때만 인용되는 문자열, 블록 스칼라로 렌더링되는 여러 줄 값, 선택적 알파벳순 키 정렬. API 응답을 Kubernetes 매니페스트, GitHub Actions 설정, 또는 YAML 네이티브 도구로 변환하는 데 유용합니다.

JSON을 YAML로 변환하는 방법

  1. 1

    JSON 붙여넣기

    유효한 JSON이면 무엇이든. 변환기가 의미 구조를 정확히 보존합니다.

  2. 2

    들여쓰기와 스타일 선택

    2칸 또는 4칸, 간결한 배열/오브젝트용 flow 스타일, 또는 긴 형식용 block 스타일.

  3. 3

    선택: 키 정렬

    알파벳순 정렬은 두 버전 간 YAML diff를 쉽게 만듭니다.

  4. 4

    YAML 복사

    `.yaml` / `.yml` 파일에 붙여 넣으세요. 출력은 유효한 YAML 1.2입니다.

예시

입력:

{
  "name": "hyperion",
  "replicas": 3,
  "env": { "DEBUG": "false", "LOG_LEVEL": "info" },
  "command": ["php", "artisan", "queue:work"]
}

출력:

name: hyperion
replicas: 3
env:
  DEBUG: "false"
  LOG_LEVEL: info
command:
  - php
  - artisan
  - queue:work

타입 매핑

JSON YAML
string 필요에 따라 비인용, 인용 또는 블록 스칼라
integer 42
number 3.14
boolean true / false
null null (또는 ~, 또는 빈 값)
array -가 있는 블록 시퀀스 또는 flow [...]
object key: value가 있는 블록 매핑 또는 flow {...}

문자열에 인용이 필요한 경우

YAML은 일부 문자열을 비문자열로 자동 해석합니다. 다음처럼 보이는 값에는 인용이 필요합니다:

인용이 필요한 이유
yes, no, on, off 불리언으로 해석됨(YAML 1.1 호환)
null, Null, NULL null로 해석됨
1.23 숫자로 해석됨
2026-04-18 날짜로 해석됨
앞뒤 공백 제거됨
*, &, !로 시작 YAML 지시문

변환기는 이들을 자동 인용하고 나머지는 가독성을 위해 비인용으로 둡니다.

YAML vs JSON 설계 차이

  • 주석: YAML에는 있고(#), JSON에는 없습니다.
  • 앵커/별칭: YAML은 교차 참조(&anchor / *alias)를 지원하고, JSON은 데이터를 반복합니다. 변환은 이를 추론할 수 없으니 원하면 수동으로 추가하세요.
  • 여러 줄 문자열: YAML에는 블록 스칼라가 있습니다(|는 줄바꿈 보존, >는 접음). 변환기는 긴 문자열에 이를 사용합니다.
  • null 표현: YAML은 null, ~, 빈 값을 허용합니다. 변환기는 기본으로 null을 출력합니다.

흔한 실수

  • YAML 1.1 “노르웨이 문제”. 인용 없는 NO는 YAML 1.1에서 불리언 false입니다. 대부분의 최신 파서는 true/false만 불리언인 YAML 1.2이지만, 일부 레거시 도구는 여전히 물립니다.
  • 값의 뒤쪽 공백. YAML은 블록 스칼라에서는 보존하고 plain 스칼라에서는 제거합니다. 어느 형식인지 모르면 예상 밖입니다.
  • 들여쓰기의 탭. YAML은 탭 들여쓰기를 금지합니다. 항상 공백을 쓰세요.
  • 매우 긴 한 줄 문자열. 가독성을 위해 블록 스칼라로 나누세요. 변환기는 설정 가능한 임계값을 넘으면 자동으로 처리합니다.

자주 묻는 질문

다른 YAML 타입(불리언, 숫자, 날짜, null)처럼 보이는 문자열은 문자열로 유지되려면 인용이 필요합니다. 특수 문자(앞쪽 공백, 비출력 문자)가 있는 문자열도 인용이 필요합니다. 변환기가 자동 감지해 필요한 곳에 인용합니다.

기본은 YAML 1.2입니다. YAML 1.1 호환(구형 도구, 일부 CI 시스템)이 필요하면 “YAML 1.1 호환”을 켜세요. 변환기가 1.1에서 불리언이 될 값(yes, no, on, off)에 추가 인용을 넣습니다.

네. flow 스타일([1, 2, 3]{ a: 1 })은 간결한 배열과 오브젝트에 사용할 수 있습니다. 대부분의 설정 파일은 가독성을 위해 block 스타일을 선호합니다.

네, 한 가지 주의점이 있습니다: K8s YAML은 종종 JSON이 표현할 수 없는 주석과 앵커에 의존합니다. 데이터 형태를 변환한 뒤 주석/앵커를 수동으로 추가하세요.

관련 도구

이 도구는 다른 언어로도 제공됩니다