개발자 도구

JSON ↔ YAML 변환기

중첩 배열, 문자열 및 정확한 숫자를 포함하는 JSON과 YAML을 로컬에서 상호 변환하세요.

입력값

YAML 1.2 데이터 변환입니다. 주석과 서식은 보존하지 않습니다. 입력 제한: 2 MiB.

계산 결과

의도한 데이터 형식으로 JSON과 YAML 변환하기

엄격한 JSON과 YAML 1.2 코어 문법 사이에서 JSON 호환 데이터를 변환하세요. 변환기는 JavaScript 숫자로 먼저 변환하며 반올림하지 않고 큰 정수를 포함한 JSON 숫자 토큰을 보존합니다. 변환하는 것은 데이터 값이며 원본 문서의 서식이나 애플리케이션 설정 스키마가 아닙니다. YAML 주석, 앵커, 표시 방식은 JSON 변환 후 유지되지 않습니다.

단계별 사용 방법

  1. 텍스트를 붙여 넣거나 기기의 UTF-8 JSON, YAML, YML 또는 TXT 파일을 여세요. JSON → YAML 또는 YAML → JSON을 명시적으로 선택하세요. 파일을 열어도 방향은 감지하지 않습니다.
  2. 공백 두 칸 또는 네 칸을 선택하고 필요하면 객체 키를 정렬하세요. 입력을 처리하고 문법 또는 미지원 기능 오류를 해결하세요. 정렬은 중첩 객체에도 적용되며 대소문자를 구분하는 사전식 순서입니다. 배열 순서는 유지됩니다.
  3. 문자열, 불리언, null, 숫자를 확인한 뒤 복사, 인쇄하거나 converted.yaml 또는 converted.json을 다운로드하세요. 입력이나 옵션을 수정하면 이전 출력이 지워지므로 다시 처리하세요. 변환한 파일을 실제 사용할 애플리케이션에서 검증하세요.

설정 및 제한

형식 및 문서 규칙
중복 없는 문자열 키와 JSON 호환 값을 사용하는 YAML 1.2 문서 하나를 사용하세요. "00123"처럼 숫자로 보이는 식별자는 따옴표로 묶으세요. 따옴표 없는 YAML 00123은 숫자 123이 됩니다. 따옴표 없는 yes, on, ISO 날짜 텍스트는 코어 규칙에서 문자열로 유지됩니다.
별칭 및 미지원 기능
순환하지 않는 별칭은 반복된 값으로 펼쳐집니다. 순환, 중복 키, 문자열이 아닌 키, 미지원 태그, 유한하지 않은 숫자는 거부됩니다. YAML 병합 키는 적용하지 않습니다. <<: *base는 일반 "<<" 속성이 되므로 상속하려는 필드는 먼저 펼쳐 두세요.
크기 및 복잡성
입력은 UTF-8 텍스트 2 MiB, 즉 2,097,152바이트로 제한됩니다. 출력 제한은 8 MiB입니다. 중첩 128단계, 값 노드 200,000개 또는 별칭 참조 100회를 넘겨도 처리가 멈춥니다. 작은 파일도 이 제한을 초과할 수 있습니다.

실습 예제

types-example.json을 다운로드하고 JSON → YAML, 공백 두 칸 들여쓰기, 정렬 끄기를 선택하세요. 변환한 뒤 types-example.yaml과 비교하세요. 따옴표로 묶인 id와 word는 문자열로, enabled는 false로, retries와 large는 숫자로 유지됩니다.

예제 파일 다운로드

예제 입력

{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}

예상 결과

"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993

이제 types-example.yaml을 열고 명시적으로 YAML → JSON으로 바꿔 다시 처리하세요. id는 "00123"이고 큰 정수는 9007199254740993이어야 합니다. YAML의 00123에서 따옴표를 없애고 다시 처리하면 값은 숫자 123이 됩니다. 두 파일이 모두 유효해도 식별자에는 이 차이가 중요합니다.

질문 및 문제 해결

다른 곳에서는 서식을 지정할 수 있는 중복 키 JSON이 여기서는 실패하는 이유는 무엇인가요?

JSON 서식 지정 도구는 중복 키를 남기고 경고할 수 있습니다. 이 변환기는 매핑으로 변환하면서 의미가 바뀔 수 있으므로 중복을 거부합니다. 원본에 남길 값을 정하고 변환 전에 중복을 제거하세요.

주석과 YAML 상속이 유지되나요?

JSON에는 주석이나 앵커가 없습니다. 별칭은 펼쳐지고 병합 키는 상속으로 적용하지 않고 그대로 내보냅니다. 의도한 데이터를 펼치고 결과를 확인하세요. 변환이 모든 YAML 기능을 충실히 다시 쓰는 것은 아닙니다.

큰 숫자는 대상 애플리케이션에서도 안전한가요?

변환기는 지원하는 숫자 표기와 큰 정수 값을 보존하지만 이후 프로그램이 낮은 정밀도로 파싱할 수 있습니다. 숫자처럼 보이는 값이 식별자라면 따옴표로 묶은 문자열을 사용하고 대상 애플리케이션의 파서를 시험하세요.