XML→JSON 변환기이란?
XML to JSON Converter는 XML 문서를 구조화된 JSON으로 즉시 변환합니다. 속성, 중첩 요소, 텍스트 노드, CDATA 섹션, 네임스페이스를 처리합니다. XML API를 JSON 기반 시스템으로 마이그레이션하거나 JavaScript에서 XML 데이터를 다룰 때 유용합니다.
변환기는 내부적으로 fast-xml-parser를 써서 실제 XML, 즉 네임스페이스, CDATA 블록, 혼합 콘텐츠, 임의 깊이의 중첩까지 제대로 처리합니다. 속성은 출력에서 @_ 접두사가 붙고, 반복 요소는 자동으로 배열로 묶이며, 콤팩트 모드로 한 줄 출력하거나 2 또는 4칸 들여쓰기로 정리할 수 있습니다.
사용 방법
- 1단계 — XML 내용을 붙여넣거나 XML 파일을 업로드합니다. 변환기가 구조를 검증하고 파싱 오류를 즉시 표시합니다.
- 2단계 — 변환 옵션을 설정합니다: 속성 유지(@attr로), 텍스트 전용 요소 축약, 반복 요소에 대한 배열 보존 여부를 선택합니다.
- 3단계 — 포맷된 JSON 출력을 복사하거나 .json 파일로 다운로드합니다.
사용 시기
- JSON을 기대하는 자바스크립트 프론트엔드에 맞춰 오래된 SOAP나 RSS 피드를 현대화할 때.
- 설문이나 테스트 결과 XML 데이터를 JSON 문서로 저장하는 NoSQL 데이터베이스에 적재할 때.
- 벤더의 XML 내보내기에서 설정을 꺼내 YAML이나 JSON 파이프라인용으로 다시 쓸 때.
결과
중첩된 제품 요소와 속성이 포함된 SOAP API 응답을 XML로 받았습니다. 붙여넣으면 <product id="123"><name>Widget</name></product>가 {"product":{"@id":"123","name":"Widget"}}으로 변환된 깔끔한 JSON을 얻을 수 있어 프런트엔드 코드에 바로 사용할 수 있습니다.
자주 묻는 질문
- XML 속성은 JSON 출력에서 어떻게 표현되나요?
- 속성은 자식 요소와 구분하기 위해 @_ 접두사가 붙습니다. 예를 들어 <book id="42"><title>Hi</title></book>는 {"book":{"@_id":"42","title":"Hi"}}가 됩니다. 뒤 단의 코드가 요소 내용만 필요하면 속성 유지를 끄세요.
- <item> 같은 XML 요소가 반복되면 어떻게 처리되나요?
- 반복 요소는 자동으로 JSON 배열로 묶입니다. 첫 등장에서 배열이 만들어지고 이후 형제 노드가 push되며, 단독 요소는 일반 객체로 남습니다. 변환된 피드에 대해 대부분의 JSON 사용자가 기대하는 관례입니다.
- CDATA, 네임스페이스, 주석도 처리되나요?
- CDATA 내용은 #cdata 키 아래에 그대로 보존됩니다. 네임스페이스는 요소 이름의 일부로 유지됩니다(xmlns:prefix 그대로). XML 주석은 JSON에 대응 문법이 없어서 버려집니다.
- 왜 숫자가 숫자 대신 문자열로 나오나요?
- 컨버터는 기본적으로 숫자 텍스트를 숫자로, true/false 텍스트를 불리언으로 변환하므로 42는 "42"가 아니라 42로 나옵니다. 사용하는 API가 모든 값을 문자열로 받아야 하거나 앞자리 0과 ID 필드를 그대로 유지해야 한다면 설정에서 「숫자와 불리언 파싱」을 끄세요.
- 이 변환기는 얼마나 큰 XML을 처리할 수 있나요?
- 전적으로 사용자 기기에서 돌기 때문에 실용적 한계는 RAM입니다. 보통 문서 하나당 수십 MB까지 무리 없이 처리됩니다. 기가바이트 단위 거대 피드는 스트리밍 파서가 필요하지만, 일반 API 응답이나 내보내기, 설정 파일 수준에서는 한계에 부딪힐 일이 없습니다.