XML → JSON 변환기

XML을 붙여넣으면 요소, 속성, 텍스트를 그대로 유지한 JSON을 얻을 수 있어 JavaScript나 API에서 바로 다룰 수 있습니다.

JSON

XML 문서를 JSON으로 변환

XML과 JSON은 데이터를 표현하는 방식이 다릅니다. XML에는 속성, 텍스트 노드, 반복 요소가 있지만 JSON에는 객체, 배열, 값만 있습니다. 이 변환기는 간결하면서도 손실 없는 매핑을 사용합니다. 각 요소는 키가 되고, 속성은 _attributes 아래에, 텍스트 내용은 _text 아래에 저장되며, 두 번 이상 나타나는 요소는 배열이 됩니다. XML 선언은 _declaration 아래에 보존됩니다. 버리는 정보가 없으므로 JSON을 수정한 뒤 JSON → XML 변환기로 다시 XML로 변환할 수 있습니다.

사용 방법

  1. SOAP 응답, RSS 피드, Maven pom.xml 같은 XML을 붙여넣습니다.
  2. 출력 편집기에서 JSON을 확인합니다. 파싱 오류가 있으면 XML 형식이 잘못된 줄이 표시됩니다.
  3. 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"
        }
      }
    ]
  }
}

다른 변환