본문으로 건너뛰기

JSON ↔ YAML 변환기

JSON ↔ YAML 변환기

JSON과 YAML을 나란히 편집하며 한쪽을 수정하면 다른 쪽에 즉시 동기화됩니다. 들여쓰기 조정, 키 정렬, 다중 문서 YAML 분할을 지원합니다. Kubernetes/Helm/CI 설정 및 API 디버깅에 유용합니다.

JSON ↔ YAML 변환기

🚀 빠른 시작

  • 왼쪽 편집기에 JSON을 붙여넣거나 입력하면 오른쪽의 YAML이 자동으로 업데이트됩니다.
  • 오른쪽에 YAML을 입력하면 왼쪽의 JSON이 자동으로 업데이트됩니다.
  • 동기화는 완전히 양방향입니다. 모드 전환이 필요하지 않습니다. 한쪽을 편집하면 다른 쪽이 즉시 업데이트됩니다.
  • 상단 도구 모음을 사용하여 JSON/YAML 들여쓰기를 설정하고, 키 정렬을 활성화하고, 다중 문서 YAML 출력을 전환합니다.
  • 포커스를 이동하는 대신 들여쓰기를 삽입하려면 편집기에서 Tab 키를 누르세요.
  • 각 편집기의 오른쪽 상단에는 복사 및 지우기 버튼이 있습니다. 한쪽을 지우면 양쪽이 모두 지워집니다.

📌 자주 쓰는 활용 사례

  • Kubernetes 작성: YAML과 JSON 간에 K8s 리소스 매니페스트를 변환하여 두 보기 모두에서 구조를 검사합니다.
  • Helm 값 디버깅: value.yaml을 JSON으로 변환하여 IDE의 유형 및 중첩을 검사합니다.
  • CI/CD 파이프라인: GitHub Actions(YAML)와 JSON을 사용하는 CI 시스템 간에 스니펫을 빠르게 변환합니다.
  • API 디버깅: 보다 명확한 계층적 보기를 위해 JSON 페이로드를 YAML로 변환합니다.
  • 구성 마이그레이션: YAML과 JSON 간의 구성 파일을 일괄 변환합니다.
  • 형식화 및 유효성 검사: 줄/열 오류 위치와 함께 양방향 동기화를 통해 JSON/YAML 구문을 확인합니다.

🧭 활용 팁

  • 대부분의 경우 2칸 JSON 들여쓰기가 작동합니다. 깊은 중첩 또는 Helm 값 파일에는 공백 4개를 사용하세요.
  • 키 정렬을 켜면 객체 키를 알파벳순으로 표시할 수 있어 구성 차이를 더 쉽게 비교할 수 있습니다.
  • JSON 루트가 배열인 경우 다중 문서 YAML을 활성화하여 각 요소를 별도의 문서(---)로 분할합니다. 이는 다중 리소스 K8s 파일에 유용합니다.
  • 입력이 유효하지 않으면 편집기에 행/열 세부 정보와 함께 오류가 표시됩니다. 다른 쪽에서는 마지막으로 유효한 콘텐츠를 유지합니다.
  • 대용량 콘텐츠의 경우 먼저 붙여넣고 동기화를 기다린 다음 계속해서 편집하여 과도한 재변환을 방지하세요.

⚠️ 제한 사항 및 호환성

  • YAML 구문 분석은 YAML 1.2 사양을 따릅니다. 일부 YAML 1.1 관련 동작(예: 자동 부울 변환 예/아니요)이 다를 수 있습니다.
  • JSON 숫자는 JavaScript IEEE 754 제한을 따릅니다. 53비트 안전 정밀도를 초과하는 정수는 정확도를 잃을 수 있습니다.
  • YAML 앵커 및 별칭(&, *, <<)은 JSON으로 변환될 때 구체적인 값으로 확장됩니다. 참조는 보존될 수 없습니다.
  • JSON은 주석을 지원하지 않으므로 변환 중에 YAML 주석이 삭제됩니다.

🔒 개인정보 보호 및 보안

  • 모든 처리는 귀하의 브라우저에서 로컬로 이루어집니다. 귀하의 데이터는 귀하의 장치를 떠나지 않습니다.

❓ 자주 묻는 질문

JSON과 YAML의 차이점은 무엇이며 언제 사용해야 합니까?

JSON과 YAML은 동일한 데이터 유형(객체, 배열, 문자열, 숫자)을 나타낼 수 있지만 구문은 다릅니다. • JSON은 중괄호/대괄호 및 큰따옴표를 사용하고 구문이 더 엄격하며 주석을 지원하지 않습니다. • YAML은 계층 구조에 들여쓰기를 사용하고 사람이 더 쉽게 읽을 수 있으며 주석을 지원하지만 공백에 민감합니다. 경험 법칙: • API 및 기계 간 데이터 교환의 경우 JSON을 선호합니다. • 사람이 자주 편집하는 Kubernetes/Helm/CI 구성의 경우 YAML을 선호합니다. • 데이터 모델을 변경하지 않고도 이들 간에 변환할 수 있습니다.

변환 후 YAML의 yes/no/on/off가 true/false가 되는 이유는 무엇입니까?

이는 yes/no/on/off/y/n이 부울로 구문 분석될 수 있는 레거시 YAML 1.1 동작에서 비롯됩니다. 이 도구는 true/false만 부울인 YAML 1.2를 따릅니다. 문자열 값이 필요한 경우 따옴표로 묶습니다(예: "yes").

JSON으로 변환한 후 YAML 주석이 사라지는 이유는 무엇입니까?

JSON(RFC 8259)은 주석을 허용하지 않습니다. 따라서 YAML 주석은 YAML→JSON 변환에서 보존될 수 없으며 다시 변환할 때 재구성될 수 없습니다. 주석이 중요한 경우 원본 YAML 파일을 유지하세요.

YAML에서 ---은(는) 무슨 뜻인가요?

--- 하나의 파일에 여러 개의 독립적인 문서를 저장하는 데 사용되는 YAML의 문서 구분 기호입니다. 이는 하나의 파일에 배포, 서비스 및 ConfigMap 정의가 포함될 수 있는 Kubernetes에서 일반적입니다. 이 도구는 다중 문서 YAML을 JSON 배열로 읽고, JSON 배열을 다시 --- 분리된 YAML 문서로 분할할 수도 있습니다.

변환 후 숫자 정밀도가 손실되면 어떻게 해야 합니까?

JavaScript는 IEEE 754 배정밀도 숫자를 사용합니다. 안전한 정수 범위는 -(2^53-1)부터 2^53-1(±9007199254740991)까지입니다. 더 큰 정수(예: Snowflake ID 또는 64비트 타임스탬프)는 정밀도를 잃을 수 있습니다. 정확한 값을 유지하려면 "9007199254740992"와 같은 문자열로 저장하세요.

변환 중에 YAML 앵커(& 및 *)는 어떻게 되나요?

앵커(&name) 및 별칭(*name)은 YAML 관련 재사용 기능입니다. JSON에는 동등한 참조 메커니즘이 없으므로 변환 중에 별칭이 전체 복사본으로 확장됩니다. 이는 손실이 있는 변환이며 원래 앵커 구조는 자동으로 복원될 수 없습니다.