JSON → XML 변환기이란?
JSON to XML Converter는 JSON 객체와 배열을 올바른 형식의 XML로 변환합니다. 중첩 구조, 배열, 특수 문자가 정확하게 이스케이프됩니다. XML 입력을 기대하는 SOAP API와 레거시 시스템에 적합합니다.
변환기는 특수문자(& < > " ')를 이스케이프하고, 공백이나 기호가 들어 있는 태그 이름을 정리하며, 배열 표현 방식을 두 가지 제공합니다: 반복 요소(<book>...</book><book>...</book>)와 래퍼(<books><item>...</item></books>). 루트 요소 이름을 정하고 XML 선언과 들여쓰기를 켜고 끌 수 있습니다.
사용 방법
- 1단계 — JSON 데이터를 붙여 넣거나 .json 파일을 업로드합니다. 변환 전에 JSON 유효성 검사가 수행됩니다.
- 2단계 — 루트 요소 이름을 설정하고, 배열을 표현하는 방식(반복 요소 또는 부모 요소로 감싸기)을 선택합니다.
- 3단계 — 구문 강조와 함께 생성된 XML을 확인한 후 클립보드에 복사하거나 .xml 파일로 다운로드합니다.
사용 시기
- XML 페이로드만 받는 SOAP 서비스나 오래된 기업용 API와 통신할 때.
- 페이지나 게시물의 JSON 목록으로 XML 사이트맵이나 RSS 피드를 만들 때.
- XSLT 변환이나 XSD 검증 파이프라인용 테스트 데이터를 준비할 때.
결과
SOAP API용으로 제품 카탈로그 JSON을 변환해야 합니다. 루트 요소를 catalog로 설정하면 products, item, id, name이 적절히 중첩된 올바른 XML 출력을 얻을 수 있습니다.
자주 묻는 질문
- XML 출력에서 배열은 어떻게 표현되나요?
- 두 가지가 있습니다. '반복 요소'는 각 항목을 형제 태그로 씁니다(<user>...</user><user>...</user>). 대부분의 XSD가 기대하는 형식입니다. '부모로 래핑'은 컨테이너 안에 <item> 자식들을 넣습니다(<users><item>...</item></users>). 명명된 래퍼를 요구하는 엄격한 스키마에 적합합니다.
- JSON 키에 공백이나 점이 들어 있으면 어떻게 되나요?
- XML 태그 이름은 공백과 대부분의 기호를 허용하지 않으므로, 변환기는 잘못된 문자를 밑줄로 바꿉니다. 'first name'은 <first_name>이 됩니다. 숫자로 시작하는 키는 앞에 밑줄을 붙여 XML이 정상 형식을 유지하도록 합니다. 두 가지 키 접두사는 특별합니다. @로 시작하는 키는 부모 요소의 속성이 되고("@id": 1은 id="1"을 생성), #text 키는 요소의 텍스트 내용이 됩니다.
- 결과가 내 XSD나 DTD 검증을 통과하나요?
- well-formed XML은 만들지만, 스키마 검증은 요소 이름, 속성 위치, 순서에 달려 있고 JSON에는 그런 정보가 없습니다. 속성이나 엄격한 순서가 필요하면 JSON 키를 미리 바꾸거나 XSLT로 후처리하세요.
- 왜 <?xml version="1.0" encoding="UTF-8"?> 선언이 나왔다 사라졌다 하나요?
- 'XML 선언 포함' 스위치가 제어합니다. SOAP, 사이트맵, 독립 XML 파일은 보통 이 줄을 원합니다. 다른 문서 안에 임베드되는 XML 조각은 필요 없으므로 스위치를 끄면 생략됩니다.
- null 값은 어떻게 처리되나요?
- null과 undefined는 <middleName/>처럼 자기 종결 태그가 됩니다. 빈 문자열을 강요하지 않고 필드의 존재만 유지합니다. xsi:nil="true"가 필요하면 생성 후 빈 태그를 수동으로 바꾸세요. JSON에는 그에 대응하는 개념이 없습니다.