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의 경우, 변환 후 수동으로 추가해야 합니다.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
키보드 단축키 참고표
macOS, Windows, Linux에서 VS Code, Chrome, GNU Readline을 쓰는 Bash의 문서화된 기본 단축키를 검색합니다.
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
이메일 검증기
이메일 주소를 검증합니다. RFC 5322 구문 검사, 실시간 MX 레코드 조회, 그리고 로컬 파트, 도메인, 길이 정보를 제공합니다. 이메일은 전송되지 않습니다.
EditorConfig 생성기
들여쓰기 스타일과 크기, 줄 끝, 문자 인코딩, 공백 규칙을 지정해 .editorconfig 파일을 생성하고 IDE와 편집기 전반의 형식을 일관되게 유지하세요.
이 도구는 다른 언어로도 제공됩니다
- JSONからXMLへ [JA]
- Chuyển đổi từ JSON sang XML [VI]
- JSON a XML [ES]
- JSON إلى XML [AR]
- JSON vers XML [FR]
- JSON para XML [PT]
- JSON ke XML [ID]
- JSON till XML [SV]
- แปลง JSON เป็น XML [TH]
- JSON naar XML [NL]
- JSON zu XML [DE]
- JSON do XML [PL]
- JSON to XML [EN]
- JSON in XML [IT]
- Преобразование JSON в XML [RU]
- JSON'ten XML'e [TR]
- JSON 到 XML [ZH]