JSON을 XML로 변환: 루트, 속성, 배열
XML은 단일 루트가 필요하고 리스트를 반복 요소로 표현합니다. @ 접두사 키를 속성에, #text를 요소 텍스트에 매핑하면 가 역적인 변환을 얻을 수 있습니다.
루트 요소 고르기
XML은 단 하나의 루트만 허용합니다. JSON의 최상위 키가 하나라면 그것을 루트 요소로 쓰고, 아니라면 모든 내용을 합성 루트 요소로 감싸세요.
속성과 텍스트
@ 접두사를 가진 키는 속성이 되고, #text 키는 요소의 텍스트 내용이 됩니다. 이것은 XML ↔ JSON의 표준 관례와 맞물려 변환이 왕복 가능해집니다.
배열은 반복 요소가 된다
JSON 배열은 단일 요소가 되지 않습니다 — 각 항목이 같은 태그 이름을 가진 별도의 요소가 됩니다. XML이 목록을 반복으로 표현하기 때문입니다.
이스케이프
본문에서는 &, <, >를 이스케이프하고(속성 안의 큰따옴표도), XML 선언을 앞에 두어 출력이 완전한 문서가 되게 하세요.
네임스페이스와 접두사
XML 네임스페이스는 xmlns 또는 xmlns:prefix 속성으로 등장해 요소와 속성 이름을 한정합니다. JSON 친화적인 형태로는 그것들을 일반적인 @xmlns / @xmlns:prefix 속성 키로 다루고, soap:Envelope 같은 접두 이름은 그대로 키로 두세요 — 대부분의 변환기는 접두사를 문자 그대로 보존합니다.
자체 닫힘 vs 명시적 빈 요소
비어 있는 JSON 값은 자체 닫힘 태그(<note/>) 또는 비어 있는 쌍(<note></note>)으로 매핑할 수 있습니다. 둘 다 XML로는 등가이지만, 일부 다운스트림 파서가 한쪽을 잘 다루지 못합니다 — 컴팩트한 출력에는 자체 닫힘을, 소비자가 엄격하다는 것을 알 때는 명시적 쌍을 쓰세요.
왕복 시 고려 사항
XML의 일부 사실은 JSON 등가물이 없습니다: 속성 순서, 주석, 처리 명령, 그리고 비어 있는 요소와 없는 요소의 차이입니다. JSON으로 변환하고 수정한 뒤 다시 XML로 돌리면 이런 아티팩트는 사라진다고 생각하세요 — 서명 정규화가 중요한 곳에서는 왕복한 XML을 절대 사용하지 마세요.
XML 포매팅, 정리, 검증
같은 변환기는 XML 포매터・정리기・검증기 역할도 합니다: 아무 XML이나 붙여 넣고 To JSON을 누르면 well-formed 여부를 검사하고, To XML을 누르면 일관된 들여쓰기로 다시 출력합니다. 에디터에 XML 뷰어나 pretty-print 플러그인이 없을 때, 로컬 도구를 깔지 않고 XML을 정리하는 가장 간단한 방법입니다.
JSON 수리 가이드
토픽 허브
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
구체적인 가이드
- Base64 문자열 디코드 방법 (그리고 JWT 페이로드)
- URL 인코딩: 쿼리 파라미터와 경로를 퍼센트 인코드하기
- YAML을 JSON으로 변환하기 (그리고 들여쓰기 오류 피하기)
- JSON을 CSV로 변환: 객체 배열을 펴기
- JSON을 문자열 리터럴로 이스케이프하기 (그리고 이중 인코드된 JSON 디코드)
- JSON의 후행 쉼표 고치기
- JSON의 작은따옴표 고치기
- JSON의 따옴표 없는 키 고치기
- LLM이 만든 JSON 고치기
- JSON 파싱 오류 “Expected Property Name” 고치기
- JSON vs JavaScript 객체 리터럴
- API 요청 전에 JSON 검증하기
- JSON 포맷터 vs JSON Repair
- JSON Unexpected Token 오류 고치기
- JSON에서 JavaScript 객체 변환기