~ / developer / yaml-json-converter

🔀 YAML ↔ JSON 변환기

YAML을 JSON으로, JSON을 YAML로 바꿔요. 들여쓰기·키 정렬·여러 문서를 지원하고, 틀린 곳은 줄·칸 번호로 알려 줘요.

결과
광고

사용법

  1. 왼쪽 칸에 YAML이나 JSON을 붙여 넣고 방향(YAML → JSON / JSON → YAML)을 골라요. 오른쪽에 바로 결과가 나와요.
  2. 들여쓰기는 2칸·4칸 중에 고르고, JSON으로 바꿀 때 '한 줄'을 고르면 공백 없이 압축된 JSON이 나와요. API 요청 본문에 넣을 때 편해요.
  3. 키 이름순 정렬을 켜면 모든 단계의 키를 알파벳·가나다순으로 정렬해요. 두 설정 파일을 비교하기 전에 켜 두면 텍스트 비교에서 차이가 잘 보여요.
  4. 문법이 틀리면 결과 아래에 몇 번째 줄 몇 번째 칸에서 무엇이 틀렸는지 나와요. '결과를 입력으로 ⇄'를 누르면 반대 방향으로 다시 바꿔 볼 수 있어요.

예시 — YAML을 JSON으로

아래는 예시 버튼의 설정 파일을 바꾼 결과예요. YAML의 들여쓰기가 JSON의 중괄호 { }로, 줄 앞 - 가 대괄호 [ ] 배열로 바뀌고, 주석(# 앱 설정 예시)은 JSON에 자리가 없어 사라져요.

YAMLJSON (2칸)
# 앱 설정 예시
app:
  name: smith lab
  port: 8080
  debug: false
  tags: [tool, calculator]
database:
  host: localhost
  user: admin
servers:
  - name: web-1
    region: seoul
  - name: web-2
    region: busan
{
  "app": {
    "name": "smith lab",
    "port": 8080,
    "debug": false,
    "tags": [
      "tool",
      "calculator"
    ]
  },
  "database": {
    "host": "localhost",
    "user": "admin"
  },
  "servers": [
    {
      "name": "web-1",
      "region": "seoul"
    },
    {
      "name": "web-2",
      "region": "busan"
    }
  ]
}

YAML과 JSON 문법 대응표

표현YAMLJSON
객체(맵)key: value + 들여쓰기{"key": "value"}
배열줄마다 - 항목 또는 [a, b]["a", "b"]
문자열따옴표 생략 가능항상 큰따옴표
nullnull, ~, 빈 값null
참·거짓true / falsetrue / false
주석# 주석없음 (변환하면 사라짐)
여러 줄 글| (줄바꿈 유지), > (한 줄로 접기)\n이 든 한 문자열
반복 재사용앵커 &이름, 별칭 *이름, 병합 <<없음 (값이 복사돼 펼쳐짐)
여러 문서---로 구분없음 (이 도구는 배열로 묶음)

YAML 1.2는 JSON을 거의 그대로 포함하도록 만들어져서, 올바른 JSON은 대부분 그대로 YAML로도 읽혀요. 그래서 JSON → YAML 변환은 거의 실패하지 않고, 실패한다면 JSON 쪽 문법(끝의 쉼표, 작은따옴표, 주석)이 틀린 경우가 대부분이에요. JSON 문법만 따로 점검하려면 JSON 검사기를 써 보세요.

변환할 때 값이 바뀌는 경우 — 실제로 돌린 결과

YAML은 따옴표 없는 값을 보고 숫자·참거짓·null인지 스스로 판단해요. 이 도구는 YAML 1.2 core 스키마를 따르는 js-yaml 4.1.1로 읽어요. 아래는 그 판단 때문에 생기는 대표적인 차이예요.

YAML 입력JSON 결과주의할 점
zip: 0123"zip": 123앞자리 0이 사라져요. 우편번호·전화번호·사번은 "0123"처럼 따옴표로 감싸요.
ver: 1.10"ver": 1.1버전 번호가 숫자 1.1이 돼요. "1.10"으로 써야 그대로 남아요.
oct: 0o14"oct": 120o로 시작하면 8진수예요.
none: ~"none": null물결표는 null이에요.
exp: 1e3"exp": 1000지수 표기도 숫자로 읽어요.
country: no"country": "no"YAML 1.2에서는 문자열이에요. 옛 YAML 1.1 파서는 false로 읽어 노르웨이 국가 코드 NO가 false가 되는 문제가 유명했어요.
d: 2026-10-21"d": "2026-10-21T00:00:00.000Z"날짜 모양은 날짜로 읽혀 시각까지 붙어요. 글자 그대로 두려면 따옴표로 감싸요.

반대로 JSON → YAML로 바꿀 때 "1.10", "0123", "yes"처럼 따옴표가 없으면 다른 값으로 읽힐 문자열은 자동으로 작은따옴표를 붙여 줘요. 위 예시 JSON의 "version": "1.10"이 version: '1.10'로 나오는 이유예요.

자주 나는 YAML 오류

오류 메시지원인고치는 법
tab characters must not be used in indentation들여쓰기에 탭 문자를 씀 (YAML은 공백만 허용)탭을 공백 2칸으로 바꿔요. 에디터의 '탭을 공백으로' 설정을 켜요.
duplicated mapping key같은 단계에 같은 키가 두 번 있음하나를 지우거나 이름을 바꿔요. JSON.parse는 뒤 값을 조용히 쓰지만 YAML은 오류로 막아요.
bad indentation of a mapping entry같은 단계 키들의 들여쓰기 칸 수가 다름, 또는 값에 : 가 또 들어감(a: b: c)형제 키는 칸 수를 똑같이 맞추고, 값에 콜론이 있으면 따옴표로 감싸요.
end of the stream or a document separator is expected콜론 뒤 공백 없이 key:value로 써서 키가 아닌 글자 한 덩어리로 읽힘콜론 뒤에 공백을 한 칸 넣어요.
unexpected end of the stream within a flow collection[, {를 열고 닫지 않음괄호 짝을 맞춰요.

여러 줄 글과 앵커는 이렇게 바뀌어요

|는 줄바꿈을 그대로 살려 "첫 줄\n둘째 줄\n"이 되고, >는 줄바꿈을 공백으로 접어 "이어지는 한 줄\n"이 돼요(끝 줄바꿈 하나는 남음). 앵커와 병합 키는 JSON에 없는 기능이라 펼쳐서 복사돼요. 예를 들어 base: &b 아래 timeout: 30을 두고 prod에서 <<: *b로 가져오면 JSON에서는 {"base":{"timeout":30},"prod":{"timeout":30,"replicas":3}}처럼 값이 그대로 들어가요.

어디에 쓰나

세 형식(JSON·YAML·XML)의 차이와 고르는 기준은 JSON·YAML·XML 비교 글에 정리해 두었어요.

변환은 이 브라우저 안에서 오픈소스 라이브러리 js-yaml 4.1.1(MIT 라이선스)로 해요. 붙여 넣은 설정·비밀번호는 저장하거나 밖으로 보내지 않아요. YAML 문법 정의는 YAML 1.2.2 명세, JSON 정의는 RFC 8259에 있어요.

자주 묻는 질문

YAML을 JSON으로 바꾸면 주석은 어떻게 되나요?
JSON에는 주석 문법이 없어서 # 주석은 사라져요. 주석을 남겨야 하는 설정이라면 원본 YAML을 따로 보관하세요.
들여쓰기에 탭을 쓰면 왜 오류가 나요?
YAML 명세가 들여쓰기에 공백만 허용하기 때문이에요. 오류 메시지에 나온 줄의 탭을 공백 2칸으로 바꾸면 돼요.
0123이나 1.10이 다른 값으로 바뀌어요.
YAML은 따옴표 없는 값을 숫자로 읽어서 0123은 123, 1.10은 1.1이 돼요. 글자 그대로 남기려면 "0123", "1.10"처럼 따옴표로 감싸세요.
yes, no, on, off는 true/false로 바뀌나요?
이 도구(YAML 1.2 core 스키마)에서는 문자열 그대로예요. 다만 YAML 1.1을 따르는 옛 파서(예: 일부 파이썬 PyYAML 설정)는 불리언으로 읽을 수 있으니 따옴표를 붙이는 게 안전해요.
---로 나뉜 여러 문서도 바꿀 수 있나요?
네. YAML → JSON에서 문서가 2개 이상이면 JSON 배열로 묶어요. a: 1 --- a: 2는 [{"a":1},{"a":2}]가 돼요.
입력한 설정이 서버로 전송되나요?
아니요. 변환은 모두 브라우저 안의 자바스크립트로 해서 비밀번호나 토큰이 든 설정을 붙여 넣어도 밖으로 나가지 않아요.

이 도구와 함께 보면 좋은 글

관련 도구

더 둘러보기

💻 개발자 다른 도구

🔥 많이 찾는 도구

🔮 재미로 한 번 더

📝 읽어 볼 만한 글

글 전체 보기 →