XML ↔ JSON 변환

XML과 JSON 형식을 상호 변환합니다

오래된 SOAP 응답이나 RSS 피드, 설정 파일을 자바스크립트에서 다루기 쉽게 JSON 으로 옮기거나, 그 반대로 JSON 데이터를 XML 만 받는 시스템에 넘겨야 할 때 씁니다. XML→JSON 은 브라우저의 DOMParser 로 문서를 읽어 요소 속성은 @attributes 객체에, 자식 요소와 텍스트가 섞인 노드의 글자는 #text 키에 담고, CDATA 구간도 일반 텍스트처럼 값으로 가져옵니다. JSON→XML 은 최상위 키가 하나면 그 키를 루트 요소로, 여러 개면 root 로 감싸고 배열은 같은 이름의 태그를 반복해 출력하며 <, &, 따옴표는 자동 이스케이프합니다. 200만 자까지 한 번에 처리하고, 잘못된 XML 을 넣으면 변환 대신 오류 메시지를 보여 줍니다.

이 도구는 인터넷 연결을 끊어도 동작합니다. 입력한 내용과 파일은 이 브라우저 밖으로 나가지 않습니다.

입력
광고

XML ↔ JSON, 이렇게 쓰세요

XML 문서를 JSON 으로, JSON 을 XML 로 상호 변환합니다. 속성은 @ 접두어 키로, 텍스트는 #text 로 매핑됩니다.

레거시 SOAP·RSS 응답을 JS 에서 다루기 쉽게 바꾸거나, JSON 설정을 XML 형식 시스템에 넘길 때 씁니다.

같은 이름의 자식 요소가 여러 개면 배열로, 하나면 객체로 변환됩니다. 개수에 따라 타입이 바뀌니 코드에서 배열 여부를 확인하세요.

관련 도구

자주 묻는 질문

Q. 항목이 하나뿐인 목록이 배열이 아니라 객체로 나옵니다.

같은 이름의 자식이 2개 이상일 때만 배열로 묶고 1개면 객체나 값으로 둡니다. 코드에서 받을 때는 Array.isArray 로 확인해 배열로 감싸 주세요.

Q. XML 네임스페이스 접두어(ns:item)는 어떻게 되나요?

접두어를 포함한 태그 이름 그대로 JSON 키가 됩니다. xmlns 선언은 @attributes 안에 속성으로 들어가므로 필요 없으면 지워도 됩니다.

Q. JSON 을 XML 로 바꿀 때 속성을 지정하려면요?

객체 안에 "@attributes": { "id": "1" } 처럼 넣으면 태그 속성으로, "#text" 키는 태그 사이 텍스트로 출력됩니다. null 값은 빈 자체 닫힘 태그가 됩니다.