XML → JSON 변환기
XML을 붙여넣으면 요소, 속성, 텍스트를 그대로 유지한 JSON을 얻을 수 있어 JavaScript나 API에서 바로 다룰 수 있습니다.
JSON
XML 문서를 JSON으로 변환
XML과 JSON은 데이터를 표현하는 방식이 다릅니다. XML에는 속성, 텍스트 노드, 반복 요소가 있지만 JSON에는 객체, 배열, 값만 있습니다. 이 변환기는 간결하면서도 손실 없는 매핑을 사용합니다. 각 요소는 키가 되고, 속성은 _attributes 아래에, 텍스트 내용은 _text 아래에 저장되며, 두 번 이상 나타나는 요소는 배열이 됩니다. XML 선언은 _declaration 아래에 보존됩니다. 버리는 정보가 없으므로 JSON을 수정한 뒤 JSON → XML 변환기로 다시 XML로 변환할 수 있습니다.
사용 방법
- SOAP 응답, RSS 피드, Maven pom.xml 같은 XML을 붙여넣습니다.
- 출력 편집기에서 JSON을 확인합니다. 파싱 오류가 있으면 XML 형식이 잘못된 줄이 표시됩니다.
- JSON을 복사하거나, 교체를 눌러 다시 XML로 변환합니다.
자주 묻는 질문
- XML의 숫자가 왜 문자열로 변환되나요?
- XML에는 데이터 타입이 없어 요소 안의 모든 내용이 텍스트입니다. 변환기는 값을 _text 아래에 문자열로 유지하여, 앞자리가 0인 우편번호처럼 타입을 잘못 추측하는 일이 없도록 합니다.
- 요소가 어떤 때는 객체이고 어떤 때는 배열인 이유는 무엇인가요?
- 요소가 하나뿐이면 객체가 되고, 같은 이름의 형제 요소가 반복되면 배열이 됩니다. 코드에서 두 경우를 모두 처리해야 한다면 Array.isArray로 확인하거나 값을 배열로 정규화하세요.
- _attributes와 _text는 무엇을 의미하나요?
- _attributes는 요소의 속성을 키-값 쌍으로 담고, _text는 요소의 텍스트 내용을 담습니다. 고정된 이름을 사용하므로 속성과 자식 요소가 서로 충돌하지 않습니다.
예시: XML → JSON
XML 입력
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<title>XML Developer's Guide</title>
<price>44.95</price>
</book>
<book id="bk102">
<title>Midnight Rain</title>
<price>5.95</price>
</book>
</catalog>JSON 출력
{
"_declaration": {
"_attributes": {
"version": "1.0",
"encoding": "UTF-8"
}
},
"catalog": {
"book": [
{
"_attributes": {
"id": "bk101"
},
"title": {
"_text": "XML Developer's Guide"
},
"price": {
"_text": "44.95"
}
},
{
"_attributes": {
"id": "bk102"
},
"title": {
"_text": "Midnight Rain"
},
"price": {
"_text": "5.95"
}
}
]
}
}