JSON에서 XML로
JSON 문서를 붙여넣고, 선택한 루트 요소의 이름을 포함한 XML로 대응하는 결과를 반환합니다. 배열의 경우 일관된 처리 방식(반복되는 요소나 랩퍼 사용)이 적용되며, 선택적으로 XML 선언과 깔끔한 인덴테이션도 추가할 수 있습니다. 기존 시스템이 XML을 요구하고 상위 데이터가 JSON 형식으로 저장되어 있는 경우에 유용합니다.
JSON을 XML로 변환하는 방법
-
1
JSON 데이터를 붙여넣기
최상위 수준의 객체 또는 배열입니다. 루트 요소에 이름을 지정합니다.
-
2
루트에 이름을 지정하세요
XML은 단일 루트 요소가 필요합니다. 기본값은 `<root>`이며, `<users>` 또는 `<response>`와 같이 의미 있는 이름을 지정하세요.
-
3
픽 배열 전략
“반복 요소”(각 배열 항목이 동일한 형제 요소인 `<item>`로 변함) 또는 “포장 요소”(배열이 명명된 포장 요소 내에 포함됨).
-
4
XML을 복사하세요
`<`, `>`, `&` 및 인용호에 대한 선택적 XML 선언, 적절한 인덴테이션, 그리고 엔티티 탈출 문자 처리된 값 사용.
예시: 반복 요소
입력:
{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }
출력:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<name>Alice</name>
</users>
<users>
<name>Bob</name>
</users>
</root>
예시: 배열 랩퍼
“배열을 <item>으로 감싸기” 전략을 적용한 동일한 입력:
<root>
<users>
<item>
<name>Alice</name>
</item>
<item>
<name>Bob</name>
</item>
</users>
</root>
타입 매핑
| JSON | XML |
|---|---|
| 문자열 | 텍스트 내용, 엔티티 이스케이프 처리됨 |
| 정수 / 소수 | 텍스트 내용(XML 타입 주석 없음) |
| 불리언 | true / false를 텍스트로 |
| null | 빈 요소(<foo/>) 또는 생략 |
| 배열 | 반복 요소 또는 래퍼 + 항목 |
| 객체 | 자식 요소를 포함한 중첩 요소 |
속성 대 요소
XML은 속성(<user id="1">)과 자식 요소(<user><id>1</id></user>)를 구분합니다. 변환기는 기본적으로 자식 요소를 사용하며, 이는 왕복 변환에서도 손실이 없습니다. 후속 XML에서 속성이 필요한 경우 키 접두사 규칙을 사용하세요.
- JSON 키
@id는 부모 요소에서 XML 속성id="..."로 변환됩니다. - JSON 키
#text는 부모 요소의 텍스트 내용이 됩니다.
이러한 규약들은 가장 일반적으로 사용되는 두 JSON-to-XML 표준인 BadgerFish 및 Parker 매핑에서 유래합니다.
이스케이프 규칙
<-><>->>&->&"->"(속성 값에서)'->'(선택적)- UTF-8 형식의 바이트는 XML 프로로그에서 선언된 대로 그대로 유지됩니다.
흔한 오류들
- 루트 수준의 JSON 배열. XML은 단일 루트 요소만 필요합니다. 변환기는 배열을
<root>(또는 사용자가 지정한 이름)로 감쌉니다. - 숫자형 키. JSON
{"1": "a"}는 유효하지만, XML 요소 이름은 숫자로 시작할 수 없습니다. 변환기는 숫자 앞에 밑줄을 붙여_1과 같은 형태로 만들거나, 사용자가 직접 정의한 매핑을 사용할 수 있게 합니다. - 혼합 배열:
[1, "two", { "x": true }]에는 명확한 매핑이 존재하지 않습니다. 일반적으로 이는 JSON을 변환하기 전에 정규화가 필요함을 의미합니다. - 대형 문서: XML은 설명이 상당히 방대한 특성을 지니며, 10MB 크기의 JSON 파일도 최대 20~30MB에 달할 수 있습니다. 특히 매우 큰 데이터 양의 경우 스트리밍 변환을 고려해야 합니다.
자주 묻는 질문
XML은 사양에 따라 단일 루트 요소가 필요합니다. JSON이 배열 형태이거나 여러 개의 최상위 키를 포함하는 경우, 변환기는 모든 데이터를 사용자가 지정할 수 있는 이름(기본값: <root>)의 루트 요소 안에 포함시킵니다.
네. JSON 키에 @ 접두사 규칙을 사용하세요(예: "@id": 1). 이렇게 하면 해당 키들은 속성으로 처리되고, 다른 키들은 자식 요소로 유지됩니다. 이는 BadgerFish 매핑과 일치합니다.
두 가지 전략이 있습니다: 반복된 형제 요소(각 항목은 부모 키를 태그로 사용함) 또는 내부에 <item> 요소가 포함된 랩퍼 사용입니다. 사용하려는 XML 스키마에 맞는 방식을 선택하세요.
아니요. 변환기는 XML 선언문(<?xml version="1.0"?>)은 출력하지만 DOCTYPE는 출력하지 않습니다. DTD 또는 XSD 참조가 필요한 XML의 경우, 변환 후 수동으로 추가해야 합니다.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
HEX → ASCII 변환기
16진 바이트 시퀀스를 ASCII 텍스트로 변환합니다. 프로토콜 디버깅, 리버스 엔지니어링, CTF 챌린지에 좋습니다.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- แปลง JSON เป็น XML [TH]
- JSON إلى XML [AR]
- JSON a XML [ES]
- JSON zu XML [DE]
- JSON do XML [PL]
- JSON ke XML [ID]
- Chuyển đổi từ JSON sang XML [VI]
- JSON vers XML [FR]
- JSONからXMLへ [JA]
- JSON naar XML [NL]
- JSON till XML [SV]
- JSON para XML [PT]
- JSON in XML [IT]
- Преобразование JSON в XML [RU]
- JSON'ten XML'e [TR]
- JSON 到 XML [ZH]
- JSON to XML [EN]