UltKit

JSON YAML 변환

JSON을 사람이 읽고 검토하고 주석을 달 수 있는 YAML로 다시 쓰십시오. .json 파일을 업로드하면 키, 값, 순서가 같은 들여쓴 .yaml 파일을 받아 바로 저장소에 넣을 수 있습니다.

데이터 변환

또는 CSV, TSV, TXT … 파일을 여기에 끌어다 놓으세요 ·

파일당 최대 95 MB· 최대 20개 파일· 30분 뒤 삭제

출력

파일은 UltKit 서버에서 처리되며 30분 뒤 삭제됩니다.

사용 방법

  1. 1

    JSON 파일 추가

    API 응답, 내보낸 설정, 생성된 매니페스트를 .json으로 최대 20개, 파일당 95 MB까지 업로드하십시오. 각 파일에는 올바른 JSON 값이 하나 들어 있어야 합니다.

  2. 2

    기본값 그대로 두기

    변환할 형식에는 이미 YAML이 선택되어 있습니다. 설정 파일이라면 더 바꿀 것이 없으며, 출력은 공백 2칸 들여쓰기를 씁니다.

  3. 3

    변환 후 커밋

    YAML로 변환을 누르고 .yaml 파일을 다운로드한 뒤, 다음 사람이 알아야 할 곳에 주석을 달고 커밋하십시오.

답변

JSON을 YAML로 변환하려면 어떻게 합니까?

.json 파일을 업로드하고 YAML로 변환을 누르십시오. 객체는 들여쓴 key: value 블록이 되고, 배열은 대시 목록이 되며, YAML이 잘못 읽을 수 있는 문자열은 따옴표를 유지합니다.

설정 파일용으로 JSON을 YAML로 변환하는 이유

JSON은 대부분 소프트웨어가 만듭니다. API 응답, 설정 내보내기, 생성기의 출력이 그렇습니다. YAML은 대부분 사람이 관리합니다. 그래서 이 변환은 대개 데이터가 기계 출력에서 팀이 소유하는 파일로 바뀌는 순간에 일어납니다. Git에 커밋하는 배포 매니페스트, CI 파이프라인, Ansible 변수 묶음이 그런 예입니다.

흔한 경우를 들어 보겠습니다. 클라우드 API를 호출해 리소스를 설명하는 200줄짜리 JSON을 받았고, 이를 인프라 코드로 보관하려 합니다. 변환하면 중괄호와 쉼표가 없는 파일이 되어 한 줄을 고치면 diff도 한 줄로 나오고, 특이한 값은 주석으로 설명할 수 있습니다. 개발자가 아닌 사람이 수정하는 테스트 픽스처와 번역 파일도 마찬가지입니다. 스프레드시트나 보고서용으로 평면 표가 필요하다면 JSON CSV 변환이 더 잘 맞습니다.

설정 파일이 YAML인 도구

변환한 YAML이 주로 쓰이는 곳
기관요구 사항출처
GitHub Actions워크플로는 .github/workflows에 .yml 또는 .yaml 파일로 저장됩니다GitHub 문서
GitLab CI/CD파이프라인은 저장소 루트의 .gitlab-ci.yml에 정의됩니다GitLab 문서
Docker Compose서비스는 compose.yaml(이전 이름 docker-compose.yml)에 기술됩니다Docker 문서
Ansible플레이북과 변수 파일을 YAML로 작성합니다Ansible 문서
Kubernetes매니페스트는 JSON과 YAML을 모두 받지만 문서와 Helm 차트는 YAML을 씁니다Kubernetes 공식 사이트

까다로운 값이 있는 JSON YAML 변환 예시

{"name":"api","version":"1.10","debug":false,"tags":["웹","유럽"],"country":"NO"}의 YAML 출력
name: api
version: "1.10"
debug: false
tags:
  - 웹
  - 유럽
country: "NO"

YAML의 장점

  • #으로 주석 작성
  • 코드 리뷰에서 더 짧은 diff
  • 대부분의 줄에 중괄호, 쉼표, 따옴표가 없음
  • | 블록 스칼라로 여러 줄 텍스트 작성

주의할 점

  • 들여쓰기가 의미를 가지므로 공백 하나로 구조가 바뀜
  • 들여쓰기에 탭을 쓸 수 없음
  • 따옴표 없는 문자열이 숫자나 논리값으로 읽힐 수 있음
  • JSON보다 파서가 느리고 동작이 제각각임

이 예시는 중괄호를 단순히 찾아 바꾸는 것만으로는 부족한 이유를 보여 줍니다. 버전 1.10은 JSON에서 문자열인데, YAML에 따옴표 없이 쓰면 숫자 1.1로 읽힙니다. 노르웨이의 ISO 코드 NO는 PyYAML 같은 YAML 1.1 파서에서 false로 읽힙니다. 두 값 모두 따옴표를 유지하고, 진짜 숫자와 논리값은 따옴표 없이 남습니다.

JSON과 YAML 비교

JSON

JavaScript 객체 표기법(JSON)

JSON은 구조화된 데이터를 위한 가벼운 텍스트 형식으로, 2000년대 초 Douglas Crockford가 널리 알렸고 RFC 8259와 ECMA-404로 표준화되었습니다. 객체, 배열, 문자열, 숫자, 불리언, null을 간단하고 읽기 쉬운 문법으로 표현합니다. 거의 모든 프로그래밍 언어에서 웹 API, 설정 파일, 앱 간 데이터 교환의 기본 형식으로 쓰입니다. 주석, 날짜, 스키마가 기본으로 들어 있지 않고, 깊게 중첩된 큰 파일은 뷰어 없이 읽기 어렵습니다.

압축 방식
–
투명도
–
애니메이션
–
도입 연도
2001 · Douglas Crockford
JSON 변환

YAML

YAML

YAML("YAML Ain't Markup Language")은 2001년에 처음 공개된, 사람이 읽고 쓰기 쉬운 데이터 형식입니다. 괄호 대신 들여쓰기를 사용하고, 주석을 지원하며, JSON의 상위 집합입니다. Docker Compose, Kubernetes, GitHub Actions와 많은 애플리케이션의 설정에 널리 쓰입니다. 공백에 의존하기 때문에 공백 하나만 잘못 들어가도 쉽게 깨지고, "no"나 날짜 같은 일부 값은 예상과 다르게 해석될 수 있습니다.

압축 방식
–
투명도
–
애니메이션
–
도입 연도
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML 변환

생성된 데이터나 API 데이터를 사람이 관리하고, 풀 리퀘스트에서 검토하고, 주석을 다는 설정 파일로 만들어야 할 때 JSON을 YAML로 변환합니다.

JSON YAML 변환 자주 묻는 질문

JSON은 이미 올바른 YAML입니까?

YAML 1.2 기준으로는 그렇습니다. 2009년 개정판은 모든 JSON 문서가 YAML 문서도 되도록 작성되었습니다. JSON을 .yaml 파일에 그대로 붙여 넣어도 대부분의 도구가 받아들입니다. 변환하는 이유는 가독성입니다. 검토자와 다음 관리자는 중괄호, 따옴표, 쉼표가 없는 블록 스타일을 기대합니다.

YAML에서 일부 값이 따옴표로 감싸진 이유는 무엇입니까?

따옴표가 없으면 YAML이 다른 유형으로 읽기 때문입니다. 1.10 같은 버전 문자열은 숫자 1.1이 되고, yes나 off는 오래된 파서에서 논리값이 될 수 있습니다. 숫자, 날짜, 논리값처럼 보이는 문자열이 문자열로 남으려면 따옴표가 필요하므로, 신중한 변환은 따옴표를 유지합니다.

변환한 뒤 주석을 달 수 있습니까?

있습니다. 그리고 그것이 변환하는 흔한 이유입니다. 줄 끝이나 별도 줄에 #을 쓰고 메모를 적으십시오. JSON에는 값을 왜 그렇게 설정했는지 설명할 방법이 없었지만 YAML에는 있으므로 검토와 인수인계가 쉬워집니다.

YAML에서 탭 문자 오류가 나는 이유는 무엇입니까?

YAML 명세는 들여쓰기에 탭을 금지하며 공백만 인정합니다. 변환기는 공백을 쓰지만, 탭을 넣도록 설정된 편집기로 다음에 수정하면 파일이 깨질 수 있습니다. .yaml 파일에는 공백을 쓰도록 편집기를 설정하십시오.

변환한 매니페스트를 Kubernetes가 받아들입니까?

kubectl은 JSON과 YAML을 모두 읽으므로 데이터는 어느 쪽이든 같습니다. 대부분의 문서, Helm 차트, 코드 리뷰가 YAML 버전을 쓸 뿐입니다. 나중에 jq나 API 호출용으로 JSON이 다시 필요하면 YAML JSON 변환으로 되돌리십시오.