본문으로 건너뛰기
ZEKILO Dev

JSON ↔ YAML 변환

JSON이나 YAML을 붙여 넣으면 다른 형식으로 바로 바꿉니다. 방향은 첫 글자로 알아냅니다.

입력값은 브라우저 밖으로 나가지 않음YAML 1.2RFC 8259기준일 2026.10.03

입력

Esc를 누른 뒤 Tab을 누르면 입력란에서 나갑니다.

출력

JSON ↔ YAML 변환 사용 방법

  1. 1입력 칸에 JSON이나 YAML을 붙여 넣거나 「예시 넣기」를 누릅니다. { 나 [ 로 시작하면 JSON으로 읽습니다.
  2. 2필요하면 방향과 들여쓰기를 고릅니다. 「바꾸기」를 누르면 결과가 입력으로 옮겨져 반대로 변환됩니다.
  3. 3「복사」로 결과를 복사하거나 「내려받기」로 .yaml 또는 .json 파일을 저장합니다.

JSON ↔ YAML 변환 옵션

방향
자동은 { 나 [ 로 시작하는 입력을 JSON으로, 나머지를 YAML로 읽습니다. YAML 문서가 괄호로 시작할 때처럼 방향을 정해야 하면 JSON → YAML 또는 YAML → JSON을 고릅니다.
YAML 들여쓰기
출력하는 YAML의 들여쓰기입니다. 2칸(기본) 또는 4칸.
JSON 들여쓰기
출력하는 JSON의 들여쓰기입니다. 2칸(기본) 또는 4칸.

YAML 1.2와 노르웨이 문제

이 도구는 YAML을 YAML 1.2의 core 스키마로, JSON을 RFC 8259에 따라 읽습니다. YAML 1.1에서는 따옴표 없는 yes, no, on, off가 불리언이었고 국가 코드 NO도 마찬가지였습니다. 그래서 국가 코드 목록에서 노르웨이가 소리 없이 false로 바뀌곤 했습니다. YAML 1.2는 이 규칙을 없앴습니다. true와 false만 불리언이고, 2026-10-02처럼 날짜로 보이는 값도 그냥 문자열입니다. 입력 맨 위에 %YAML 1.1이 있어도 똑같이 읽습니다.

아직 YAML 1.1 파서를 쓰는 프로그램이 많습니다. 그래서 YAML로 쓸 때는 오래된 파서가 불리언·숫자·날짜·null로 읽을 수 있는 문자열을 따옴표로 감쌉니다. 예를 들면 "yes", "NO", "2026-10-02"입니다. 이렇게 하면 두 버전 모두 문자열로 읽습니다.

그대로 남는 것과 사라지는 것

키 순서는 양쪽 방향 모두 그대로입니다. 숫자는 글자로 옮기기 때문에 큰 정수나 소수 끝의 0이 왕복해도 남습니다. JSON 오류는 JSON 포맷터와 같은 줄·열·문구로 알려 줍니다.

YAML은 JSON이 담지 못하는 것을 표현할 수 있습니다. 주석, 앵커 이름, 태그는 사라집니다. 키는 항상 문자열이 되므로 키 1은 "1"이 됩니다. 여러 줄 블록 텍스트는 줄바꿈이 \n인 JSON 문자열 하나가 됩니다.

JSON ↔ YAML 변환 예시

  • JSON을 YAML로 (기본 옵션: 자동, 2칸)

    입력

    {"name":"ZEKILO","tools":["json","base64"],"port":8080}

    출력

    name: ZEKILO
    tools:
      - json
      - base64
    port: 8080
  • YAML을 JSON으로: NO와 yes는 문자열

    YAML 1.1 파서는 두 값을 불리언으로 읽습니다. YAML 1.2는 그렇지 않습니다.

    입력

    country: NO
    enabled: yes

    출력

    {
      "country": "NO",
      "enabled": "yes"
    }
  • 별칭은 값으로 펼쳐집니다

    앵커 이름 x는 JSON에 옮길 자리가 없어 사라지고, 사라졌다는 안내가 함께 보입니다.

    입력

    a: &x 1
    b: *x

    출력

    {
      "a": 1,
      "b": 1
    }
  • 닫지 않은 괄호

    입력

    a: [1, 2

    출력

    1줄 9열 · YAML 문법 오류

예시는 이 도구를 검증하는 기준 사례의 값입니다.

JSON ↔ YAML 변환 자주 묻는 질문

입력값이 서버로 전송되나요?

아니요. 입력과 결과는 이 브라우저 안에서만 처리되며 저장하지도 않습니다. 새로 고침하면 사라집니다.

NO, yes, off가 왜 문자열로 남나요?

이 도구는 YAML 1.2를 따릅니다. 1.2에서는 true와 false만 불리언입니다. YAML 1.1은 yes·no·on·off·y·n도 불리언으로 읽어서 국가 코드 NO(노르웨이)가 false로 바뀌는 문제가 있었습니다. YAML로 쓸 때는 이런 문자열을 따옴표로 감싸 YAML 1.1 파서도 문자열로 읽게 합니다.

주석과 앵커는 어떻게 되나요?

JSON에는 둘 다 없습니다. 주석과 앵커 이름은 사라지고, 별칭은 가리키는 값으로 바뀝니다. 이럴 때는 안내를 함께 보여 줍니다. 자기 자신을 가리키는 별칭은 오류로 알려 줍니다.

큰 숫자나 소수가 바뀌지 않나요?

바뀌지 않습니다. 숫자는 양쪽 방향 모두 적힌 글자 그대로 옮기므로 12345678901234567890이나 1.0이 그대로 나옵니다. 0x1F나 +1처럼 JSON에 없는 표기만 10진수로 바꿔 쓰고, .inf와 .nan은 null이 됩니다.

YAML 문서가 여러 개인 파일은 어떻게 되나요?

---로 나눈 문서들은 문서마다 한 항목인 JSON 배열 하나가 됩니다. 문서가 하나뿐이면 배열로 감싸지 않습니다.

처리 방식·표준

  • 처리 위치: 이 브라우저 (내 기기). 전송하거나 저장하지 않습니다.
  • 표준: YAML 1.2 · RFC 8259
  • 엔진: yaml 2.9.1 (ISC) · ZEKILO Dev JSON 파서 (자체 구현)
  • 병합 키(<<)는 YAML 1.1의 기능이고 YAML 1.2 core 스키마에는 없습니다. << 라는 이름의 일반 키로 그대로 둡니다.
  • !mytag 같은 사용자 태그는 버리고 값만 옮깁니다. 배열이나 객체를 키로 쓴 YAML은 JSON으로 쓸 수 없어 오류로 알려 줍니다.
  • JSON에 같은 키가 두 번 나오면 YAML에는 마지막 값만 쓰고 안내를 보여 줍니다.
  • 기준일 2026.10.03
  • 변경 이력: 2026.10.03 처음 공개
오픈소스 라이선스 →
결과가 이상한가요? 오류 신고하기(입력값은 첨부되지 않습니다)