JSON XML 변환
JSON ⇄ XML
속성·배열·텍스트 노드 처리 방식을 정해 JSON과 XML을 상호 변환합니다.
XML을 JSON으로, 또 그 반대로 바꿉니다. 둘 사이에 표준 매핑은 없습니다. XML에는 속성과 순서 있는 혼합 내용과 네임스페이스가 있고 JSON에는 하나도 없습니다. 그래서 이 페이지는 관례를 숨기는 대신 고른 방식을 분명히 밝히고 바꿀 수 있게 합니다.
속성은 `@id` 형태가 됩니다.
요소 자신의 텍스트가 들어갈 자리입니다.
XML
JSON
@name 키가 되고, 요소 자신의 텍스트는 #text로 가며, 이름이 같은 형제는 배열이 됩니다. 마지막 것이 왕복에서 정보를 잃는 자리입니다. 원소가 하나뿐인 목록은 "항상 배열로"를 켜지 않으면 객체 하나로 돌아옵니다.입력
215자
출력
399자
사용 방법
방향을 고릅니다
양쪽이 입력을 따로 들고 있어서, 왔다 갔다 해도 붙여넣은 것이 사라지지 않습니다.
속성 접두사와 텍스트 키를 정합니다
`@`와 `#text`가 널리 쓰이는 관례입니다(fast-xml-parser, xml2js 등이 씁니다). 만들어야 하는 JSON이 다른 걸 쓴다면, 나중에 후처리하는 대신 여기서 바꾸세요.
JSON을 코드가 받는다면 항상 배열로를 켭니다
이 매핑에서 정보가 새는 지점입니다. `<item>`이 하나면 객체, 둘이면 배열이 되고 받는 코드가 두 경우를 다 처리해야 합니다. 항상 배열로 두면 조금 장황해지는 대신 모양이 안정됩니다.
자주 묻는 질문
왕복하면 원래 XML이 그대로 돌아오나요?
구조로는 대체로, 바이트로는 아닙니다. 주석과 처리 명령, 그리고 `<a/>`와 `<a></a>`의 구분은 살아남지 않습니다. 텍스트와 요소가 번갈아 나오는 혼합 내용은 순서를 지키면서 JSON으로 표현할 방법이 없습니다.
`12`가 왜 문자열인가요?
XML에는 타입이 없기 때문입니다. 문서의 모든 값은 텍스트이고, 다르게 말해 주는 건 스키마뿐입니다. 변환 설정을 켜면 숫자와 불리언을 추측하지만 어디까지나 추측입니다. 상품 코드 `0123`은 123이 되고 버전 문자열 `1.10`은 1.1이 됩니다.
네임스페이스는 어떻게 되나요?
접두사는 요소 이름의 일부로 남습니다. `soap:Body`는 `soap:Body`라는 키가 되고, `xmlns` 선언은 평범한 속성으로 넘어옵니다. 네임스페이스 URI로 해석하지는 않기 때문에, 같은 네임스페이스를 다른 접두사로 쓴 두 문서는 서로 다른 JSON이 됩니다.
SOAP 응답을 넣어도 되나요?
됩니다. 이 페이지에 오는 흔한 이유 중 하나입니다. 봉투와 본문과 실제 내용이 중첩된 객체로 넘어오고, SOAP 속성들은 `@`가 붙은 키에 들어갑니다.
이 도구로 이어지는 것
XML 정렬·검사
XML Formatter & Validator
XML 들여쓰기를 정리하고, 구조가 잘못된 첫 지점의 줄과 열을 짚어 줍니다.
XPath 테스터
XPath Tester
XML·HTML에 XPath나 CSS 선택자를 적용해 일치하는 노드를 모두 보여 줍니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
YAML 정렬·검사
YAML Formatter & Validator
YAML 들여쓰기를 통일하고 문법을 검사하며, 파서를 깨뜨리는 탭·앵커 실수를 표시합니다.
다음 단계
이 도구의 결과를 그대로 받을 수 있는 도구들입니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
JSONPath 테스터
JSONPath Tester
JSONPath 식을 문서에 실행하고 입력하는 동안 일치하는 노드를 강조해 보여 줍니다.
XML 정렬·검사
XML Formatter & Validator
XML 들여쓰기를 정리하고, 구조가 잘못된 첫 지점의 줄과 열을 짚어 줍니다.
XPath 테스터
XPath Tester
XML·HTML에 XPath나 CSS 선택자를 적용해 일치하는 노드를 모두 보여 줍니다.
Base64 인코딩·디코딩
Base64 Encoder & Decoder
텍스트와 파일을 Base64·Base64URL로 인코딩·디코딩하며 UTF-8을 올바르게 처리합니다.
curl 코드 변환
curl to Code
curl 명령을 fetch·axios·파이썬 requests·Go·PHP·PowerShell 코드로 변환합니다.