YAML JSON 변환기

YAML과 JSON을 즉시 상호 변환합니다. 중첩 객체·배열·YAML 1.2 전체 기능 지원. 무료, 브라우저에서 처리.

  • 브라우저에서 처리
  • 데이터가 브라우저 밖으로 나가지 않습니다
  • 무료 · 회원가입 불필요
두 칸과 상태를 지우고 대기 중인 변환을 취소합니다. 도구 안에 포커스가 있을 때 Ctrl+L(Mac은 ⌘+L)로도 지울 수 있습니다.
YAML 문서 하나를 붙여 넣으세요. 입력을 멈추고 0.3초 뒤 JSON 칸이 공백 두 개 들여쓰기로 갱신됩니다. JSON에 원래 값 그대로 담을 수 없으면 변환을 멈추고 필드 경로와 이유를 표시합니다.
직접 편집한 내용을 포함하여 YAML 칸의 현재 텍스트 전체를 복사합니다. 빈 칸은 복사할 수 없습니다.
JSON을 붙여 넣으세요. 입력을 멈추고 0.3초 뒤 YAML 칸이 공백 두 개 들여쓰기로 갱신됩니다. 긴 줄을 접힌 형식으로 바꾸지 않습니다.
직접 편집한 내용을 포함하여 JSON 칸의 현재 텍스트 전체를 복사합니다. 빈 칸은 복사할 수 없습니다.
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.

YAML과 JSON의 구분 사용

YAML은 Docker Compose, Kubernetes, GitHub Actions, Ansible, Helm Charts 등의 설정 파일에 널리 사용됩니다. JSON은 REST API, 웹 브라우저, 프로그램 간 데이터 교환에 적합합니다. 두 형식 간 변환이 필요한 상황에서 활용하십시오.

타입이 바뀌는 값

이 도구는 js-yaml 4.3.2를 쓰며 YAML 1.2 core schema와 타임스탬프를 따릅니다. 다음 입력은 이렇게 변환됩니다.

YAMLJSON설명
country: NO"NO"문자열. PyYAML 같은 YAML 1.1 파서는 false로 읽음
enabled: yes"yes"위와 같음. 불리언은 true로 쓰기
version: 1.101.1숫자로 해석됨. 버전 문자열은 따옴표로 감싸기
mode: 0755755YAML 1.2에서 앞의 0은 8진수가 아님. 0o755로 쓰기
zip: 012341234앞의 0이 사라짐. 이런 코드는 따옴표로 감싸기
date: 2026-09-29"2026-09-29T00:00:00.000Z"날짜가 UTC 타임스탬프 전체로 바뀜
at: 2026-10-01T09:30:00+09:00"2026-10-01T00:30:00.000Z"오프셋이 UTC로 바뀜. JSON에는 날짜 타입이 없어 UTC ISO 8601 문자열이 됨. 시각은 같지만 원래 쓴 +09:00은 남지 않음
zero: -0.0-0.0음수 0은 부호를 유지함(JSON.stringify만 쓰면 0)
empty:null값이 없는 키는 null

제한 사항

  • 한 번에 문서 하나만 변환합니다. ---로 구분된 입력은 expected a single document in the stream, but found more 오류가 납니다.

  • JSON이나 YAML로 나타낼 수 없는 값이 있으면 변환하지 않습니다. YAML의 .inf, -.inf, .nan과 양방향 모두 ±(2^53 − 1)을 벗어나는 정수는 변환 중 값이 바뀝니다(JSON.stringify는 null로 쓰고, JSON.parse와 js-yaml은 큰 정수를 반올림합니다). 상태 줄에 각 필드를 JSON Pointer로 표시합니다. 다음 YAML은

    size: .inf
    id: 9007199254740993

    변환하지 않았습니다: JSON에서는 다음 값을 바꾸지 않고 나타낼 수 없습니다: /size: inf — JSON으로 나타낼 수 없습니다(JSON.stringify는 null로 씁니다); /id: 정수 9007199254740993 — ±(2^53 − 1) 범위를 벗어나 JavaScript에서 반올림됩니다 메시지를 냅니다. 1e400처럼 배정밀도 범위를 넘는 JSON 숫자도 같은 방식으로 표시합니다. 큰 ID는 따옴표로 감싸세요. 변환할 수 있는 입력이 될 때까지 출력 패널은 비워지고 복사 버튼은 비활성화됩니다.

  • 없는 날짜와 밀리초보다 정밀한 시간은 변환하지 않습니다. js-yaml은 Date.UTC로 날짜를 만들기 때문에 2026-02-31을 3월 3일로 넘기고, 시간은 밀리초까지만 남깁니다. 이런 타임스탬프가 있으면 변환을 멈춥니다. 다음 YAML은

    due: 2026-02-31
    at: 2026-10-01T09:30:00.123456Z

    변환하지 않았습니다: JSON에서는 다음 값을 바꾸지 않고 나타낼 수 없습니다: /due: 2026-02-31 — 올바른 날짜나 시각이 아닙니다; /at: 2026-10-01T09:30:00.123456Z — 밀리초보다 정밀합니다 메시지를 냅니다. 텍스트로 쓰려는 값은 따옴표로 감싸세요(due: "2026-02-31"). 올바른 날짜와 시간은 위 표처럼 UTC로 변환됩니다.

  • js-yaml 처리 한도. js-yaml 4.3.2는 중첩이 100단계를 넘거나, 병합 키(<<)가 처리하는 매핑과 키가 모두 10,000개를 넘거나, 병합 키 하나에 매핑을 100개 넘게 나열한 문서에서 멈춥니다. 예: 유효하지 않은 YAML: 컬렉션 중첩이 100단계를 넘습니다(js-yaml 기본 한도) (1:103).

  • 중복 키는 오류입니다(duplicated mapping key). 조용히 덮어쓰지 않습니다.

  • 주석과 앵커는 남지 않습니다. 앵커와 << 병합 키는 펼쳐져 일반 복사본이 됩니다.

  • JSON 정수 -0은 0이 됩니다. {"count":-0,"offset":-0.0}은 count: 0과 offset: -0.0이 됩니다. YAML 1.2는 -0을 정수 0으로 읽고, -0.0은 음의 부동소수점 0으로 남습니다.

  • JSON → YAML에서는 모호한 문자열에 따옴표를 붙입니다('1.10', 'yes', 'NO' 등). 다시 읽어도 문자열로 남습니다.

FAQ

YAML과 JSON의 차이는 무엇입니까?

YAML은 들여쓰기로 구조를 표현하고, 주석·여러 줄 문자열·앵커 앤 에일리어스 등의 기능을 가져 사람이 읽고 쓰기 쉬운 형식입니다. JSON은 더 엄격하고 기계 처리에 적합합니다. 설정 파일에는 YAML, API에는 JSON이 많이 사용됩니다.

YAML의 주석은 변환 후에도 유지됩니까?

아니요. JSON에는 주석 개념이 없으므로 YAML→JSON 변환 시 주석은 제거됩니다.

YAML 1.2를 완전히 지원합니까?

주요 기능(중첩 객체·배열·문자열 타입·숫자 타입·불리언·null·앵커 앤 에일리어스)을 지원합니다.

데이터가 서버로 전송됩니까?

아니요. 모든 변환 처리는 브라우저 내에서 완결됩니다.