본문으로 건너뛰기
123도구

YAML JSON 변환기

YAML을 JSON으로, JSON을 YAML로 바꾸고 문법 오류 위치를 알려줍니다. 쿠버네티스 매니페스트처럼 여러 문서가 든 YAML도 처리합니다.

  • YAML 1.2 · JSON (RFC 8259)
  • 파일·입력값이 서버로 전송되지 않음
  • 가입 없이 무료

올바른 YAML · 문서 1개

JSON

{
  "apiVersion": "apps/v1",
  "kind": "Deployment",
  "metadata": {
    "name": "tool-web",
    "labels": {
      "app": "tool"
    }
  },
  "spec": {
    "replicas": 2,
    "template": {
      "spec": {
        "containers": [
          {
            "name": "web",
            "image": "tool-web:1.4.0",
            "ports": [
              {
                "containerPort": 3000
              }
            ],
            "env": [
              {
                "name": "NODE_ENV",
                "value": "production"
              }
            ]
          }
        ]
      }
    }
  }
}

입력한 값은 브라우저 안에서만 처리됩니다. 그래도 민감한 운영 토큰, 비밀번호, API 키는 입력하지 마세요.

사용 방법

  1. 변환 방향을 고르고 왼쪽에 YAML이나 JSON을 붙여 넣습니다. 파일 열기로 .yaml, .json 파일을 열 수도 있습니다.
  2. 문법이 틀리면 몇 번째 줄, 몇 번째 칸인지 알려줍니다. YAML 입력칸에서 Tab 키를 누르면 공백 2칸이 들어갑니다.
  3. ---로 나뉜 여러 문서(쿠버네티스 매니페스트 등)는 JSON 배열로 바뀝니다.
  4. ‘바꾸기’로 결과를 반대 방향으로 다시 변환해 왕복 결과를 확인할 수 있습니다.

계산 기준과 공식

YAML 1.2 규칙으로 해석합니다(npm yaml 라이브러리). YAML 1.2는 JSON을 포함하므로 모든 JSON은 올바른 YAML이기도 합니다. 변환할 때 알아 둘 차이:

  • YAML 주석(#)은 JSON에 담을 수 없어 사라집니다.
  • 앵커와 별칭(&base, *base)은 실제 값으로 펼쳐집니다.
  • 따옴표 없는 값은 형식을 추측합니다: true는 불리언, 1.10은 숫자 1.1, 01234는 숫자 1234가 됩니다. NO, yes는 1.2 규칙에서 문자열입니다.
  • 같은 키가 두 번 나오면 오류로 처리합니다.

예시

  1. 따옴표 없는 값의 함정

    country: NO version: 1.10 zip: 01234

    를 JSON으로 바꾸면 { "country": "NO", "version": 1.1, "zip": 1234 }가 됩니다. 버전 1.10은 숫자 1.1로, 우편번호 01234는 앞의 0이 빠진 1234로 바뀌었습니다. 버전 번호, 우편번호, 전화번호는 "01234"처럼 따옴표로 감싸야 합니다.

  2. JSON 설정을 YAML로

    {"name":"tool-web","ports":[80,443],"debug":false}는 YAML로 다음과 같습니다.

    name: tool-web ports: - 80 - 443 debug: false
  3. 탭으로 들여쓴 YAML

    탭 문자로 들여쓰면 3번째 줄 1번째 칸에서 “들여쓰기에 탭을 쓸 수 없습니다. 공백으로 바꿔주세요.” 오류가 납니다. YAML은 공백 들여쓰기만 허용합니다.

결과를 읽는 법

오류 위치는 해석이 막힌 곳입니다. 들여쓰기 오류는 실제 실수가 그 윗줄에 있는 경우가 많으니, 같은 단계 항목들이 같은 칸에서 시작하는지 위쪽부터 확인하세요.

자주 묻는 질문

YAML 주석을 JSON에서 살릴 수 있나요?

JSON 표준에는 주석이 없어서 변환하면 사라집니다. 주석이 필요하면 설명을 "_comment" 같은 키로 따로 넣는 방법을 쓰기도 합니다.

on, yes, no 가 true/false 로 바뀌나요?

YAML 1.1(예전 PyYAML 등)에서는 yes/no/on/off가 불리언이었지만, 이 도구가 따르는 YAML 1.2에서는 true/false만 불리언이고 나머지는 문자열입니다. 사용하는 프로그램이 1.1이면 결과가 다를 수 있습니다.

여러 문서가 든 YAML은 어떻게 되나요?

--- 로 나뉜 문서들은 JSON 배열의 각 항목이 됩니다. 반대로 JSON 배열을 YAML로 바꿀 때 '배열을 문서로 나누기'를 켜면 항목마다 --- 로 나눈 여러 문서가 됩니다.

변환한 YAML의 순서가 원본과 같나요?

네, 키 순서를 그대로 유지합니다. 다만 들여쓰기와 따옴표 스타일은 표준 형식으로 다시 씁니다.

결과가 이상하거나 있었으면 하는 기능이 있나요? 오류 제보 · 의견 보내기