UltKit

JSON XML 변환

XML만 받는 소프트웨어에 JSON 데이터를 넘기십시오. 레코드는 요소가 되고, 키는 하위 태그가 되며, 문서 전체는 이름을 직접 정하는 루트 요소 하나 아래에 놓입니다.

데이터 변환

또는 CSV, TSV, TXT … 파일을 여기에 끌어다 놓으세요 ·

파일당 최대 95 MB· 최대 20개 파일· 30분 뒤 삭제

출력

파일은 UltKit 서버에서 처리되며 30분 뒤 삭제됩니다.

사용 방법

  1. 1

    JSON 업로드

    API 응답 같은 .json 파일이나 JSON Lines 파일을 추가하십시오. 최대 20개 파일, 파일당 95 MB까지 가능합니다.

  2. 2

    루트 요소 이름 정하기

    고급 설정의 XML 루트 태그에 바깥 태그 이름을 입력하십시오(기본값은 rows). 들여쓴 출력을 원하면 보기 좋게 정렬을 켜 두십시오.

  3. 3

    변환 후 매핑

    XML로 변환을 누르고 다운로드하십시오. 받는 시스템의 스키마가 다른 이름을 요구하는 태그는 이름을 바꾸십시오.

API 대부분이 JSON으로 넘어갔는데 XML로 변환하는 이유

웹 API는 JSON이 차지했습니다. 현행 명세인 2017년 RFC 8259는 몇 쪽 분량에 불과합니다. XML은 그보다 오래되어 1998년 2월부터 W3C 권고안이었고, 은행, 전자 세금계산서, 출판, 정부 보고처럼 규약이 엄격한 분야에서는 한 번도 물러나지 않았습니다.

그래서 이 변환은 대개 돈이나 규제를 따라갑니다. 개발자는 JSON API에서 주문을 가져와 거래처의 SOAP 서비스로 보내야 합니다. 쇼핑몰은 상품을 JSON으로 관리하지만 가격 비교 사이트는 XML 피드를 원합니다. 팀은 번역을 JSON으로 저장하지만 Android 빌드는 strings.xml을 요구합니다. 목적지가 스프레드시트라면 JSON CSV 변환으로 요소 대신 행을 얻으십시오.

지금도 XML 입력을 요구하는 시스템

JSON XML 변환기가 쓰이는 곳
기관요구 사항출처
SOAP 웹 서비스모든 요청이 XML 봉투로 전달됩니다. SOAP 1.2는 2003년에 W3C 권고안이 되었습니다—
Google Merchant Center상품 피드를 구분자 텍스트와 함께 RSS 2.0 또는 Atom 1.0 형식의 XML로도 받습니다—
Peppol 전자 세금계산서Peppol BIS Billing 3.0 규칙에 따라 송장을 UBL 2.1 XML 문서로 주고받습니다—
Android 앱텍스트 리소스와 번역이 res/values/strings.xml에 저장됩니다—

JSON XML 변환 예시: 상품 2개

[{"sku":"A-17","price":12.5,"tags":["신상품","세일"]}, {"sku":"B-02","price":8}]로 만든 XML
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <sku>A-17</sku>
    <price>12.5</price>
    <tags>신상품</tags>
    <tags>세일</tags>
  </row>
  <row>
    <sku>B-02</sku>
    <price>8</price>
  </row>
</rows>

오해JSON과 XML은 일대일로 대응하므로 변환이 정확합니다.

사실XML에는 JSON에 없는 속성, 혼합 콘텐츠, 네임스페이스가 있고, JSON에는 XML에 없는 유형이 있습니다. 변환기는 한 가지 매핑을 골라야 하며, 여기서는 전부 하위 요소를 씁니다.

오해숫자 12.5는 XML에서도 숫자로 남습니다.

사실XML은 문자를 저장합니다. 스키마나 읽는 프로그램이 10진수라고 정하기 전까지 12.5는 텍스트입니다.

JSON이 XML로 바뀔 때 달라지는 점

확인할 점은 세 가지입니다. 유형이 텍스트로 평면화되므로 true, null, 0이 모두 문자로 들어가고, null은 대개 빈 요소가 됩니다. 태그는 숫자로 시작하거나 공백을 포함할 수 없으므로 올바른 XML 이름이 아닌 키는 이름을 바꿔야 합니다. 그리고 모든 값이 키를 반복하는 여는 태그와 닫는 태그로 감싸지므로 출력이 더 커집니다.

그 밖에는 사라지는 것이 없습니다. 중첩은 중첩 요소로 유지되고, 레코드 순서도 그대로이며, 파일을 UTF-8로 쓰므로 유니코드 텍스트도 온전합니다. YAML부터 SQL까지 구조화 데이터를 위한 더 많은 옵션은 데이터 변환 페이지에 정리되어 있습니다.

JSON과 XML 형식 정보

JSON

JavaScript 객체 표기법(JSON)

JSON은 구조화된 데이터를 위한 가벼운 텍스트 형식으로, 2000년대 초 Douglas Crockford가 널리 알렸고 RFC 8259와 ECMA-404로 표준화되었습니다. 객체, 배열, 문자열, 숫자, 불리언, null을 간단하고 읽기 쉬운 문법으로 표현합니다. 거의 모든 프로그래밍 언어에서 웹 API, 설정 파일, 앱 간 데이터 교환의 기본 형식으로 쓰입니다. 주석, 날짜, 스키마가 기본으로 들어 있지 않고, 깊게 중첩된 큰 파일은 뷰어 없이 읽기 어렵습니다.

압축 방식
–
투명도
–
애니메이션
–
도입 연도
2001 · Douglas Crockford
JSON 변환

XML

확장 가능한 마크업 언어(XML)

XML은 1998년 W3C가 발표한 구조화된 데이터용 마크업 언어입니다. 속성이 붙은 중첩 태그를 사용하고 스키마, 네임스페이스, 유효성 검사를 지원해 복잡한 문서에 적합합니다. RSS 피드, SVG, Office 문서, 사이트맵과 많은 기업·정부 데이터 교환의 기반입니다. JSON보다 장황하지만 모든 프로그래밍 언어와 많은 스프레드시트 도구가 XML을 읽을 수 있습니다.

압축 방식
–
투명도
–
애니메이션
–
도입 연도
1998 · W3C
XML 변환

최신 데이터를 오래된 규약에 넣어야 할 때 JSON을 XML로 변환합니다. SOAP 엔드포인트, 상품 피드, 전자 세금계산서 네트워크, 또는 중괄호가 아니라 요소를 읽도록 만들어진 설정 파일이 그런 예입니다.

JSON XML 변환 자주 묻는 질문

JSON이 배열로 시작하는데 XML에는 왜 루트 요소가 하나 필요합니까?

XML 1.0 명세는 올바른 형식의 문서라면 나머지 전체를 감싸는 요소가 정확히 하나 있어야 한다고 규정합니다. JSON 배열에는 그런 감싸는 요소가 없으므로 변환기가 XML 루트 태그로 이름 붙인 요소를 하나 추가하고, 배열의 각 항목을 그 안에 <row>로 넣습니다.

"2024 total"이나 "unit price" 같은 JSON 키는 어떻게 됩니까?

둘 다 올바른 XML 요소 이름이 아닙니다. 이름은 숫자로 시작하거나 공백을 포함할 수 없습니다. 변환하기 전에 JSON에서 이런 키의 이름을 바꾸십시오. 받는 스키마가 쓰는 태그 이름과 정확히 같게 바꾸면 출력을 나중에 정리할 필요가 없습니다.

레코드 안의 JSON 배열은 XML에서 어떻게 기록됩니까?

항목마다 같은 요소가 한 번씩 반복됩니다. 문자열 3개가 든 tags 배열은 연속된 <tags> 요소 3개가 됩니다. 빈 배열은 아무것도 남기지 않으며, 이는 JSON XML 변환에서 정보가 사라지는 몇 안 되는 경우입니다.

만든 XML이 거래처의 XSD 검증을 통과합니까?

구조가 이미 일치할 때만 통과합니다. 변환기는 JSON을 충실하고 올바른 형식으로 옮겨 쓰지만, 거래처가 요구하는 요소 순서, 네임스페이스, 속성까지는 알 수 없습니다. 출력을 출발점으로 삼아 스키마에 맞게 조정하십시오.

XML을 다시 JSON으로 바꿀 수 있습니까?

XML JSON 변환을 이용하십시오. 왕복 과정에서 작은 차이가 생길 수 있습니다. XML은 모든 값을 텍스트로 저장하므로 JSON에서 숫자나 true였던 값이 문자열로 돌아올 수 있습니다.