JSON을 YAML로, 다시 JSON으로
JSON과 YAML 사이 변환
JSON과 YAML은 같은 데이터 — 맵, 리스트, 문자열, 숫자, 불리언, null — 를 두 가지 문법으로 표현합니다. JSON은 API와 패키지 파일의 언어이고, YAML은 Docker, Kubernetes, GitHub Actions, CI 파이프라인 설정 파일의 언어입니다. 이 변환기는 한쪽을 다른 쪽으로 즉시 옮기고, 사람들이 걸려 넘어지는 세부 — 따옴표, 들여쓰기, YAML이 불리언으로 취급하는 이상한 단어들 — 를 처리합니다.
단계
- 1 방향을 선택하고 문서를 위쪽 상자에 붙여 넣으세요. 결과는 입력과 함께 아래에 나타납니다.
- 2 들여쓰기 폭을 설정하세요 — 2칸은 YAML과 대부분의 JSON 스타일 가이드의 관례입니다.
- 3 결과를 복사하거나 파일로 다운로드하거나, 출력을 새 입력으로 삼아 왕복 변환이 맞는지 확인하세요.
두 형식 사이에 무엇이 바뀌나
YAML은 중괄호, 대괄호와 대부분의 따옴표를 버리고 구조를 들여쓰기로 나타내므로, 40줄짜리 JSON 객체는 25줄짜리 YAML 문서가 됩니다. 키 순서는 그대로입니다. 리스트는 대시 항목으로, 중첩 객체는 들여쓴 블록으로 바뀌고, 빈 객체나 리스트는 {} 또는 []로 그대로 적힙니다. 반대 방향에서는 JSON에 주석이 없기 때문에 YAML 주석이 사라집니다.
일부 문자열이 따옴표로 나오는 이유
YAML에서 따옴표 없는 yes, no, on, off, true, null은 불리언이나 null로, 123이나 1.0은 숫자로 읽힙니다. 이것들처럼 보이는 문자열은 따옴표로 감싸야 하며, 그렇지 않으면 돌아오는 길에 타입이 바뀝니다 — 전형적인 예가 국가 코드 NO가 false가 되는 것입니다. 변환기는 정확히 그런 문자열과, 앞뒤 공백이 있거나 콜론 뒤 공백이 있거나 특수 문자로 시작하는 문자열에만 따옴표를 붙이고, 나머지는 읽기 쉽게 그대로 둡니다.
여러 줄 문자열
줄바꿈이 있는 문자열은 YAML 블록 스칼라로 적힙니다. 키 줄에 세로 막대, 그 아래 들여쓴 텍스트, 문자열 끝에 줄바꿈이 없으면 빼기 기호가 붙습니다. Kubernetes 매니페스트와 CI 파일에서 보는 형태이며, 다시 읽으면 정확히 같은 문자열이 됩니다.
들여쓰기와 호환성
변환기는 모든 현대 파서 — PyYAML, js-yaml, Go yaml, Ruby Psych — 가 읽는 YAML 1.2를 씁니다. 중첩 키는 선택한 폭으로 들여쓰고, 리스트 안 객체의 키는 명세가 요구하는 대로 어떤 경우에도 대시 뒤 두 칸에 놓입니다. 탭은 절대 쓰지 않습니다.