XML을 JSON 변환기
브라우저에서 XML 데이터나 파일을 JSON 형식으로 즉시 변환하세요. 사용자 정의 들여쓰기를 지원하고 중첩 구조를 처리합니다.
XML 파일 선택
아니면 여기로 드래그 앤 드롭하세요.
브라우저에서 XML 데이터나 파일을 JSON 형식으로 즉시 변환하세요. 사용자 정의 들여쓰기를 지원하고 중첩 구조를 처리합니다.
아니면 여기로 드래그 앤 드롭하세요.
XML과 JSON은 모두 데이터 교환 형식이지만 웹의 서로 다른 시대에서 유래되었습니다. 1998년에 표준화된 XML은 속성, 네임스페이스 및 스키마 유효성 검사를 갖춘 자체 설명적 마크업 형식으로 설계되었습니다. JSON은 2000년대 초반에 JavaScript 런타임과 최신 API에 더 적합한 경량 형식으로 등장했습니다. 대부분의 새로운 웹 API는 JSON을 사용합니다. SOAP 서비스, RSS 피드, 구성 파일, 엔터프라이즈 통합 등 많은 기존 시스템에서는 여전히 XML을 생성합니다. 이들 간의 변환은 현대 개발에서 가장 일반적인 상호 운용성 작업 중 하나입니다.
두 형식의 표현력이 다르기 때문에 변환이 완벽하게 무손실은 아닙니다. XML에는 기본적으로 JSON에는 없는 속성이 있고, 텍스트 콘텐츠와 요소 이름을 구별하며, 혼합 콘텐츠(텍스트와 하위 요소를 모두 포함하는 요소)를 지원합니다. JSON의 간단한 개체/배열 모델은 이러한 기능을 직접적으로 나타낼 수 없으므로 변환기는 규칙을 적용합니다. 속성은 @ 접두사가 붙은 키가 되고, 텍스트 콘텐츠는 #text 키가 됩니다.
이 변환기는 브라우저에 내장된 DOMParser를 사용하여 XML을 구문 분석하고 결과 DOM 트리를 탐색하여 JSON을 생성합니다. 형제와 동일한 태그 이름을 가진 요소는 배열로 수집됩니다. 속성은 특수 키에 들어갑니다. 네임스페이스 및 처리 지침이 있는 경우 보존됩니다. 결과는 합리적으로 XML로 다시 왕복되는 사람이 읽을 수 있는 JSON입니다.
대부분의 최신 애플리케이션 코드는 JSON을 사용하는 것이 더 편합니다. JavaScript는 JSON을 기본적으로 구문 분석하고, Python의 json 모듈은 표준 라이브러리에 있으며, 사실상 다른 모든 언어에는 동등한 일류 JSON 지원이 있습니다. XML을 처리하려면 추가 라이브러리를 가져오고 더 많은 상용구를 작성해야 합니다. 처리하기 전에 수신 XML을 JSON으로 변환하는 것이 외부 XML 피드에서 내부 데이터 구조로의 가장 빠른 경로인 경우가 많습니다.
도구는 또한 JSON을 활용합니다. JSON 미화자, 유효성 검사기, 스키마 유효성 검사기, 쿼리 언어(jq, JSONPath) 및 뷰어가 풍부합니다. XML 등가물은 더 적고 오래된 경우가 많습니다. JSON으로 작업하면 더욱 풍부한 도구 생태계가 열립니다.
XML을 붙여넣고 JSON을 가져옵니다.
DOMParser는 브라우저가 XHTML 페이지에 사용하는 것과 동일한 XML DOM을 생성합니다. 변환기는 이 DOM을 재귀적으로 탐색합니다. 각 요소에 대해 JSON 객체를 생성합니다. 속성은 @ 접두사가 붙은 키가 됩니다(예: @id, @class). 요소의 하위 요소는 동일한 구조로 재귀됩니다. 어린이와 함께 있는 텍스트 콘텐츠는 #text 키 아래에 있습니다.
동일한 태그 이름을 가진 반복되는 하위 요소는 JSON 배열로 수집됩니다. 특정 이름의 단일 하위 항목이 개체 값으로 나타납니다. 여러 하위 항목이 객체 배열로 나타납니다. 이 규칙은 실제로는 잘 작동하지만 JSON 모양은 요소가 한 번 표시되는지 여러 번 표시되는지에 따라 달라집니다. 이는 알려진 XML-JSON 매핑의 불완전성입니다.
네임스페이스는 요소 이름(접두사:localName)의 일부로 보존됩니다. 처리 지침과 CDATA 섹션은 텍스트 콘텐츠로 변환됩니다. XML 선언과 DOCTYPE은 JSON 출력에서 제거되지만 데이터에는 영향을 주지 않습니다.