JSON·XML·YAML 파서
JSON·XML·YAML 을 붙여넣거나 파일로 열면 문법을 검사하고(틀리면 몇 줄 몇 칸인지), 접고 펼치는 트리로 보여 주고, 값·키를 검색하고, 경로로 값을 찾고, 정리·압축하고, 서로 변환합니다. 모든 처리는 이 브라우저 안에서만 이뤄지며 입력과 파일은 서버로 보내지 않습니다.
JSON·XML·YAML 파일을 입력칸으로 끌어다 놓아도 됩니다. 파일은 이 브라우저에서만 읽습니다(UTF-8, 최대 2MB). 형식은 확장자와 내용으로 알아보고 알맞은 탭으로 열어 드립니다.
구조 요약
검색
트리
항목을 누르면 경로가 여기에 표시됩니다
경로로 찾기
JSONPath 일부를 지원합니다: $.a.b · $.list[0] · $.list[-1] · $.list[*].name · $..price · $.list[0:2] · $.list[?(@.price < 10)] · $['키 이름']
정리·변환
변환 규칙: 키는 요소 이름이 되고 배열은 같은 이름의 요소가 반복됩니다. "@이름" 키는 속성, "#text" 키는 요소의 글이 됩니다. 요소 이름으로 쓸 수 없는 글자는 _ 로 바뀝니다. 키가 하나뿐인 객체는 그 키가 루트 이름이 됩니다(아니면 「루트 이름」, 비워 두면 root). YAML 로 바꿀 때는 그대로 옮겨 쓰며, 문자열은 다른 값으로 오해될 때(true, 007 …)만 따옴표를 붙입니다.
JSON·XML·YAML 파일을 입력칸으로 끌어다 놓아도 됩니다. 파일은 이 브라우저에서만 읽습니다(UTF-8, 최대 2MB). 형식은 확장자와 내용으로 알아보고 알맞은 탭으로 열어 드립니다.
구조 요약
검색
트리
항목을 누르면 경로가 여기에 표시됩니다
경로로 찾기
XPath 일부를 지원합니다: /root/item · //name · /root/item[2] · //item[@id='a'] · //item[title='x'] · //item/@id · //name/text() · 이름만 쓰면 어디서든 찾습니다
정리·변환
변환 규칙: 속성은 "@이름" 키, 속성·자식과 함께 있는 글은 "#text" 키가 됩니다. 같은 이름이 반복되면 배열, 내용이 없는 요소는 null 입니다. 주석·처리 명령은 버립니다. XML 은 값에 형식이 없어 기본은 모두 문자열입니다(JSON·YAML 모두 같습니다).
JSON·XML·YAML 파일을 입력칸으로 끌어다 놓아도 됩니다. 파일은 이 브라우저에서만 읽습니다(UTF-8, 최대 2MB). 형식은 확장자와 내용으로 알아보고 알맞은 탭으로 열어 드립니다.
구조 요약
검색
트리
항목을 누르면 경로가 여기에 표시됩니다
경로로 찾기
YAML 도 JSON 과 같은 구조로 읽어 JSONPath 로 찾습니다: $.a.b · $.list[0] · $.list[*].name · $..price · $.list[?(@.price < 10)] · $['키 이름']
정리·변환
변환 규칙: YAML 은 JSON 과 같은 구조로 읽으므로 JSON 으로는 그대로 바뀝니다. XML 로 바꿀 때는 JSON→XML 규칙(키는 요소 이름, 배열은 같은 이름 반복, "@이름" 속성, "#text" 글)을 따릅니다. 주석은 변환하면 사라집니다.
알아 둘 점
- JSON 은 엄격하게 읽습니다 — 주석, 마지막 쉼표, 작은따옴표, 따옴표 없는 키는 오류로 알려 줍니다.
- 숫자는 원문 그대로 보관합니다. 12345678901234567890 이나 1.0 이 정리·변환을 거쳐도 바뀌지 않습니다.
- 같은 키가 두 번 나오면 오류는 아니지만 경고로 알려 줍니다(실제 프로그램은 마지막 값만 씁니다).
- XML 의 DOCTYPE 내부 선언(ENTITY)은 해석하지 않고 거부합니다. 엔티티 폭탄·외부 파일 읽기 같은 공격의 입구이기 때문입니다. 외부 DTD 를 가리키는 선언은 읽지 않고 건너뜁니다.
- XML 은 < > & " ' 와 숫자 참조(A)만 풀어 줍니다. 그 밖의 &이름; 은 오류입니다.
- 입력은 2MB, 중첩은 200단계까지입니다.
- YAML 은 자주 쓰는 문법을 지원합니다 — 맵·목록·따옴표 글·| > 블록 글·[ ] { } 흐름·주석. 앵커(&)·별칭(*)·태그(!)·여러 문서(---)·? 복합 키·여러 줄 따옴표 글은 지원하지 않고 오류로 알려 줍니다. 별칭은 내용을 곱절로 부풀리는 공격의 입구이기도 해서 해석하지 않습니다.
- YAML 값은 1.2 규칙으로 읽습니다. null · true/false · 10진 숫자만 값이 되고 yes/no · 0x1F · 날짜는 글자 그대로 문자열입니다. 들여쓰기에는 공백만 쓸 수 있습니다(탭은 오류).
자주 묻는 질문
입력한 JSON·XML 이 서버로 전송되나요?
아닙니다. 읽기·검사·변환 모두 이 브라우저에서 이루어지며 어디로도 전송·저장되지 않습니다.
「코드 정리」나 개발자 도구의 JSON 탭과 무엇이 다른가요?
그쪽은 예쁘게 다시 쓰는 도구이고, 여기는 구조를 읽는 도구입니다. 트리로 훑어보기, 경로로 값 찾기, 오류 위치, 구조 요약, JSON↔XML 변환이 있습니다.
XML 을 JSON 으로 바꾸면 숫자가 문자열로 나와요.
XML 에는 값의 형식이 없어서 기본은 모두 문자열입니다. 「숫자·true/false 는 값으로 변환」을 켜면 숫자처럼 생긴 글만 숫자로 바꿉니다(007 같은 앞자리 0 은 문자열로 둡니다).
JSON 을 XML 로 바꿨다가 되돌리면 같은가요?
이 도구가 만든 규칙(속성 "@", 글 "#text", 반복은 배열) 안에서는 같습니다. 다만 빈 문자열과 null 은 둘 다 빈 요소라 null 로 돌아오고, 요소 이름으로 못 쓰는 키는 바뀝니다.
YAML 의 앵커(&)와 별칭(*)은 왜 안 되나요?
별칭은 같은 내용을 여러 번 가리키게 해 문서를 몇 단계만에 수십억 배로 부풀릴 수 있어(별칭 폭탄) 해석하지 않고 오류로 알려 드립니다. 별칭을 펼친 글을 붙여넣으면 읽을 수 있습니다.