it-box

XML → JSON 변환기

XML 데이터를 JSON으로 변환합니다.

XML → JSON 변환기 도구 열기

XML 문서를 JSON으로 바꿔 XML 응답을 자바스크립트에서 다루기 쉬운 객체 구조로 확인합니다.

사용 순서

  1. 입력 칸에 XML을 붙여 넣습니다. 기본 예시는 속성이 있는 한 줄짜리 요소입니다.
  2. 오른쪽에 2칸 들여쓰기의 JSON이 표시됩니다.
  3. 속성은 _attributes, 텍스트는 _text, 주석은 _comment 키로 나오는지 확인합니다.
  4. 같은 이름의 요소가 배열로 묶였는지 보고 필요한 값을 복사합니다.

예시

<a x="1.234"/>는 {"a":{"_attributes":{"x":"1.234"}}}가 됩니다. 1.234는 숫자가 아니라 따옴표가 붙은 문자열입니다.

한계

compact 방식으로 변환하므로 같은 이름의 자식 요소는 배열로 묶이고, 자식이 하나일 때는 객체로 나와 같은 키라도 모양이 달라집니다. 속성 값과 숫자 값은 모두 문자열로 남습니다. 네임스페이스 접두사는 키 이름에 그대로 포함됩니다. XML 선언은 _declaration 키로 나옵니다.

보안 주의

XML 응답에 주민등록번호나 결제 정보 같은 개인정보가 들어 있으면 붙여 넣기 전에 가리세요. 이 도구는 스키마나 DTD를 검사하지 않으므로 변환 결과가 맞아 보여도 대상 시스템이 받아들인다는 뜻은 아닙니다.

배경 지식

XML은 태그로 감싸는 계층 구조 문서이며 요소, 속성, 텍스트, 주석을 구분합니다. JSON에는 속성이라는 개념이 없으므로 XML을 JSON으로 옮기려면 속성과 자식 요소를 어떻게 구분할지 규칙을 정해야 합니다. 이 규칙을 정한 방식이 변환 라이브러리마다 다릅니다. 입문자는 이 규칙을 먼저 익히면 결과 JSON을 읽는 속도가 빨라집니다.

xml-js의 compact 방식은 속성을 _attributes 객체에, 텍스트를 _text 키에 둡니다. 같은 이름의 형제 요소는 배열로 모입니다. 이 규칙을 알아야 결과를 다른 코드에서 읽을 때 키 이름을 맞출 수 있습니다. 처음 보는 응답이라면 같은 키가 배열인지 객체인지 먼저 확인해야 반복 처리 코드가 깨지지 않습니다.

관공서 연계 시스템, 오래된 공공 API, RSS 피드처럼 아직 XML을 쓰는 곳이 많습니다. 이를 자바스크립트에서 다루려면 파싱 후 객체로 바꾸는 과정이 필요하고, 숫자와 불리언이 모두 문자열로 나온다는 점을 고려해 타입을 다시 맞춰야 합니다. 특히 숫자 필드를 비교 연산에 쓰기 전에 Number로 바꾸는 단계를 빠뜨리지 않아야 합니다.

자주 묻는 질문

XML 속성과 자식 요소의 이름이 같으면 어떻게 되나요?

compact 방식에서는 속성이 _attributes 아래에 있고 자식 요소는 바로 키로 올라오므로 이름이 같아도 충돌하지 않습니다. 같은 이름의 자식 요소가 여러 개이면 배열이 됩니다.

XML 주석은 결과에 남나요?

남습니다. 주석 내용은 _comment 키로 나오며 다른 키와 같은 객체 안에 섞여 나옵니다. 주석이 필요 없다면 변환 결과에서 _comment 키를 지우세요.

XML 선언(<?xml ...?>)은 어떻게 나오나요?

선언은 _declaration 키 아래에 version과 encoding 속성으로 나옵니다. 대상 시스템이 선언을 요구하지 않는다면 그대로 두어도 되고, 필요 없으면 키를 삭제하세요.