MYMONDAY.ai
서비스스튜디오도구데이터·포맷73CSS 생성기19색상·이미지10인코딩·보안10웹·SEO11개발·데브옵스10파일·내보내기18계산기6가이드

JSON을 YAML로 변환

모든 JSON 값을 블록 스타일 YAML로 바꾸고, 옛 YAML 1.1 파서가 잘못 읽는 단어는 따옴표로 감싸 주는 스위치를 제공합니다.

  • 브라우저에서 처리
  • 가입 없음
  • 무료

도구 작업 공간

예제

옵션

들여쓰기

yes, no, on, off, 1_000에 따옴표를 붙여 PyYAML 같은 YAML 1.1 파서도 문자열로 읽게 합니다.

JSON 입력

27줄435byte

결과

⌘/Ctrl + Enter로 복사
결과 · data.yaml
id: 4821
status: shipped
customer:
  id: 77
  name: Ada Lovelace
  email: ada@example.com
  vip: true
items:
  - sku: KB-100
    name: Keyboard
    qty: 1
    price: 49.9
  - sku: MS-220
    name: Mouse
    qty: 2
    price: 19
total: 87.9
shipped_at: "2026-03-14T09:30:00Z"
tracking: null
키19
크기290byte

JSON YAML 변환기는 JSON을 파싱한 뒤 JavaScript용 yaml 라이브러리로 YAML을 씁니다. 출력은 블록 스타일에 들여쓰기 2칸 또는 4칸이며, 긴 문자열도 접지 않아서 긴 URL이나 문장이 한 줄에 그대로 남습니다. 결과와 함께 키 개수가 표시됩니다.

실질적으로 YAML은 JSON의 상위 집합이라 데이터가 아니라 표기만 바뀝니다. 도구는 JSON을 주는데 파이프라인, 쿠버네티스 매니페스트, CI 파일, docker compose 파일은 YAML인 상황에서 유용합니다. 두 형식이 갈리는 지점은 yes, on 같은 평범한 단어이며, 기본으로 켜져 있는 YAML 1.1 단어 따옴표 옵션이 이를 위해 있습니다.

모든 처리는 브라우저 안에서 이루어집니다. 200,000자를 넘는 입력은 Web Worker에서 처리하고 1,000,000자를 넘으면 편집기에서 원문을 숨기되 전체를 변환합니다. 입력은 20 MiB까지이며 어떤 JSON 값이든 루트가 될 수 있습니다.

사용 방법

  1. JSON 붙여넣기

    객체, 배열, 스칼라를 붙여넣거나 샘플(API 응답, 중첩 배열, 경계 사례)을 불러옵니다. 문법 오류가 있으면 출력 대신 오류가 표시됩니다.

  2. 들여쓰기 고르기

    쿠버네티스와 GitHub Actions에서 흔한 2칸, 또는 저장소가 쓰는 4칸을 고릅니다.

  3. YAML 1.1 단어 따옴표 정하기

    PyYAML, Ruby 등 YAML 1.1 파서가 읽을 수 있는 파일이면 켜 두세요. YAML 1.2만 쓰는 도구이거나 가장 짧은 출력이 필요하면 끕니다.

  4. 따옴표와 여러 줄 텍스트 확인

    따옴표가 붙은 값은 그대로 두면 숫자, 불리언, null, 날짜로 읽힐 문자열입니다. 줄바꿈이 있는 문자열은 |- 블록으로 나오므로 블록 안 들여쓰기를 확인합니다.

  5. 복사 또는 저장

    YAML을 복사하거나 파일로 저장해 매니페스트나 설정에 넣습니다.

작동 원리

JSON 값이 YAML로 바뀌는 방식

객체는 블록 매핑, 배열은 - 항목의 블록 시퀀스가 되고, 안전하면 스칼라는 따옴표 없이 씁니다. 빈 객체와 빈 배열은 플로 스타일 {}, []이며 null은 null로 적습니다.

YAML 1.2는 true, false만 불리언으로 봅니다. PyYAML과 Ruby의 Psych는 yes, no, on, off도 불리언으로 읽지만 한 글자 y, n은 문자열로 둡니다. 1_000, 0x1F, 따옴표 없는 날짜에도 타입을 붙일 수 있습니다. 옵션을 켜면 모호한 값에 따옴표를 붙여 문자열로 읽게 합니다.

JSONYAML 출력
문자열 hellohello
문자열 123, true, null"123", "true", "null" (따옴표)
문자열 yes, off, 1_000, 2024-01-01옵션 켬: 따옴표, 끔: 따옴표 없음
빈 문자열""
줄바꿈이 있는 문자열리터럴 블록 |-
숫자 0.1, -00.1, -0
nullnull
{}와 []{}와 []

따옴표, 줄 너비, 들여쓰기

따옴표 없는 형태가 뜻을 바꿀 때 문자열에 따옴표가 붙습니다. 숫자·불리언·null처럼 보이거나, 비어 있거나, : 또는 맨 앞 # 같은 지시 문자가 들어 있는 경우입니다. 따옴표 문자열은 JSON 방식의 이스케이프를 쓰는 큰따옴표입니다.

도구는 lineWidth를 0으로 두어 접기를 끕니다. 그렇지 않으면 라이브러리가 긴 문자열을 여러 줄로 감싸는데, 올바르긴 해도 diff에서 헷갈립니다. 들여쓰기는 기본 2칸이고, 4칸이면 중첩 단계마다 네 칸씩 들여씁니다.

script: |-
  echo one
  echo two
count: "123"
answer: "yes"
ports:
  - 80
  - 443

실제 예시

배포 매니페스트 같은 문서
입력
{"name":"web","replicas":3,"env":{"LOG_LEVEL":"info","DEBUG":false},"ports":[80,443],"labels":[{"app":"web"},{"tier":"front"}]}
출력
name: web
replicas: 3
env:
  LOG_LEVEL: info
  DEBUG: false
ports:
  - 80
  - 443
labels:
  - app: web
  - tier: front

객체는 들여쓴 매핑이 되고 배열은 대시 목록이 되며, 객체 목록은 첫 키가 대시와 같은 줄에 옵니다.

잘못 읽힐 문자열에는 따옴표가 붙습니다
입력
{"count":"123","flag":"true","nothing":"null","empty":"","colon":"a: b","hash":"#c"}
출력
count: "123"
flag: "true"
nothing: "null"
empty: ""
colon: "a: b"
hash: "#c"

숫자·불리언·null처럼 보이는 문자열, 빈 문자열, 콜론이나 맨 앞 해시가 있는 텍스트는 문자열로 되돌아오도록 따옴표를 붙입니다.

옵션을 켠 YAML 1.1 단어
입력
{"answer":"yes","switch":"off","code":"1_000","day":"2024-01-01","name":"Bob"}
출력
answer: "yes"
switch: "off"
code: "1_000"
day: "2024-01-01"
name: Bob

yes, off, 1_000, 날짜에 따옴표가 붙어 PyYAML도 문자열로 읽습니다. Bob 같은 일반 단어는 그대로입니다.

같은 단어를 옵션 끄고 변환
입력
{"answer":"yes","day":"2024-01-01"}
출력
answer: yes
day: 2024-01-01

YAML 1.1 단어 따옴표를 끈 결과입니다. YAML 1.2로는 올바르지만 YAML 1.1에서는 불리언과 날짜로 읽힙니다.

4칸 들여쓰기, 여러 줄 텍스트, 빈 컨테이너
입력
{"script":"echo one\necho two","none":null,"e":[],"o":{},"list":[{"a":1}]}
출력
script: |-
    echo one
    echo two
none: null
e: []
o: {}
list:
    - a: 1

줄바꿈은 strip 표시가 붙은 리터럴 블록(|-)으로, 빈 컨테이너는 플로 스타일로 나오며 들여쓰기는 4칸입니다.

최상위 배열
입력
[1,"a",null]
출력
- 1
- a
- null

어떤 JSON 값이든 루트가 될 수 있어서 배열은 단순한 대시 목록이 됩니다.

자주 하는 실수

  • 큰 정수는 변환 전에 반올림됩니다

    파싱한 숫자 토큰을 JavaScript 숫자로 바꾸는 과정에서 9007199254740993이 9007199254740992가 된 뒤 YAML을 씁니다. 아주 큰 ID는 JSON에서 문자열로 두세요.

  • 1.1 옵션을 끄면 의미가 바뀔 수 있습니다

    YAML 1.1 단어 따옴표를 끄면 yes, no, on, off와 날짜가 따옴표 없이 쓰입니다. PyYAML과 Psych는 이를 불리언이나 날짜 객체로 읽지만 y, n은 문자열로 둡니다. 읽는 쪽을 모르면 옵션을 켜 두세요.

  • 주석은 보존할 수 없습니다

    JSON에는 주석이 없으니 YAML에도 없습니다. 변환한 뒤에 직접 추가하세요.

  • 키 순서는 JSON을 따릅니다

    키는 파싱된 순서대로 쓰입니다. "10", "2" 같은 정수형 키는 JavaScript 객체 규칙대로 오름차순으로 맨 앞에 옵니다.

  • 중복 JSON 키는 합쳐집니다

    JSON에 같은 키가 두 번 있으면 변환 전에 마지막 값만 남으므로 YAML에도 하나만 나옵니다.

  • 출력은 블록 스타일뿐입니다

    들여쓰기는 고를 수 있지만 플로 스타일은 선택할 수 없으므로, 저장소가 더 엄격한 서식을 요구하면 자체 포매터가 필요할 수 있습니다.

자주 묻는 질문

YAML은 JSON의 상위 집합인가요?

실질적으로는 그렇습니다. YAML 1.2는 JSON 문서를 읽을 수 있습니다. 이 변환기는 JSON처럼 보이는 플로 스타일이 아니라 관용적인 블록 스타일 YAML을 만듭니다.

왜 일부 문자열에 따옴표가 붙나요?

숫자·불리언·null처럼 보이는 문자열, 빈 문자열, 콜론 뒤에 공백이 오는 텍스트는 YAML 파서가 다시 문자열로 읽도록 따옴표를 붙입니다. YAML 1.1 옵션이 켜져 있으면 yes, on, 1_000 같은 단어도 따옴표로 감쌉니다.

YAML 1.1 단어 따옴표 옵션은 무엇을 하나요?

YAML 1.1 파서가 불리언·숫자·날짜로 바꿔 읽을 문자열(yes, no, on, off, y, n, 1_000, 0x1F, 2024-01-01 등)에 따옴표를 붙입니다. YAML 1.2 파서도 따옴표 형태를 같은 문자열로 읽으므로 어디서나 안전합니다.

여러 줄 텍스트는 어떻게 쓰이나요?

끝 줄바꿈이 없는 텍스트는 |- 리터럴 블록으로 써서 줄바꿈을 추가하지 않습니다. JSON 문자열이 줄바꿈으로 끝나면 |를 써서 마지막 줄바꿈까지 보존합니다.

최상위 배열이나 스칼라도 되나요?

네. 유효한 JSON 값이면 모두 받으며 최상위 배열은 대시 목록이 됩니다.

들여쓰기를 고를 수 있나요?

네, 2칸 또는 4칸이며 기본은 2칸입니다.

출력에 YAML 버전 줄이 붙나요?

아니요. %YAML 지시문이 없으므로 각 파서가 자기 기본 버전으로 읽습니다.

데이터가 업로드되나요?

아니요. 변환은 브라우저 안에서 실행됩니다.

더 깊이 읽기

마지막 업데이트: