XML을 JSON으로
XML 문서를 깔끔하고 예측 가능한 JSON으로 변환
XML을 JSON으로 변환하는 도구란?
XML은 2000년대의 기본 데이터 형식이었고 RSS 피드, 은행 API, SOAP 서비스, 레거시 구성 파일에 여전히 남아 있습니다. 현대 JavaScript·Python·Go 코드는 JSON을 훨씬 자연스럽게 읽습니다. XML-JSON 변환기는 예측 가능한 스키마로 문서를 단순 객체로 번역합니다: 각 요소는 객체가 되고, 속성은 "@@" 접두사가 붙어 "id" 속성이 "id"라는 하위 요소와 충돌하지 않으며, 텍스트 내용은 "@text" 아래 있고, 반복된 형제 요소는 배열로 접힙니다.
할 수 있는 일
- 중첩 요소를 JSON 객체로 파싱
- 속성(@@ 접두사), 텍스트(@text), 하위 요소 분리
- 반복된 형제 요소를 자동으로 배열로 그룹화
- CDATA 섹션, 주석, 선언, 자체 종료 태그 처리
- 짝이 안 맞거나 닫히지 않은 태그를 명확한 오류로 보고
- JSON을 읽기 좋은 들여쓰기로 포맷
언제 사용하나
- RSS/Atom 피드나 SOAP류 응답 읽기
- XML 구성을 JSON 기반 파이프라인으로 마이그레이션
- 레거시 XML API가 실제로 반환하는 것 조사
- XML 참조 데이터에서 JSON 테스트 픽스처 구축
개인정보: 파싱은 전적으로 브라우저에서 발생하며, 붙여넣은 내용이 업로드되지 않습니다.
이 변환기가 사용하는 매핑 방식
- XML 속성은
@접두사가 붙은 키로 변환됩니다(price currency="EUR"→{"@currency":"EUR"}). 이렇게 하면 자식 요소와의 이름 충돌을 피할 수 있습니다. - 텍스트와 자식 요소를 동시에 포함하는 요소는 텍스트를
#text키 아래에 저장합니다. 순수 텍스트만 있는 요소는 문자열 그대로 매핑됩니다. - 반복되는 형제 요소는 배열로 압축되며, XML 선언, 주석, 처리 지시문은 모두 생략됩니다.
속성과 텍스트 노드에는 규칙이 필요합니다
속성과 텍스트가 섞이지 않음
속성은 "@@id" 형식의 키가 되고 텍스트는 "@text" 아래 있으므로, 같은 이름의 속성과 요소가 서로 덮어쓰지 않습니다.
목록은 목록으로 유지
반복된 형제 요소가 자동으로 JSON 배열로 접힙니다. 다섯 권의 카탈로그가 덮어쓴 한 권이 아니라 다섯 개 객체의 배열이 됩니다.
실제 XML에 관대함
CDATA, 주석, DOCTYPE, 자체 종료 태그가 깔끔하게 파싱되고, 진짜 잘못된 XML은 설명적인 메시지로 실패합니다.
자주 묻는 질문
속성은 어떻게 표현되나요?⌄
속성은 "@@" 접두사가 붙은 키가 됩니다. 예: <book id="5">는 {"@@id":"5"}가 됩니다. "id" 속성과 같은 이름의 하위 요소의 전형적 충돌을 방지합니다.
반복된 요소는 어떻게 되나요?⌄
같은 이름의 반복된 형제 요소가 자동으로 JSON 배열로 그룹화됩니다. 한 번만 있으면 단일 객체로, 여러 번이면 배열이 됩니다. 둘 다 직관적으로 읽힙니다.
내 XML이 어딘가 업로드되나요?⌄
아니요. 모든 것이 순수 JavaScript로 브라우저에서 실행되며, 전송되거나 저장되지 않습니다.
JSON 출력에서 내 속성은 어디로 갔을까요?⌄
@-접두사가 붙은 키를 해당 요소와 동일한 객체에서 찾으세요. #text만 보인다면, 해당 요소는 속성과 콘텐츠를 모두 가졌다는 뜻입니다. 기대했던 속성이 보이지 않는다면, 그 속성은 부모 노드에 있었을 가능성이 높습니다 — 트리를 한 단계 위로 확장해 보세요.