GoodFormat

엉킨 한 줄 JSON · XML · 파이썬 dict를 붙여넣으면 주욱 정리해 줍니다.

🔒 모든 처리는 브라우저 안에서만 이뤄집니다. 입력 내용은 서버로 전송되지 않습니다.

입력
결과
정리된 결과가 여기에 표시됩니다.
들여쓰기

GoodFormat 사용법

JSON 응답을 로그에서 복사했더니 한 줄로 뭉쳐 있거나, 파이썬에서 print(dict) 한 결과가 들여쓰기 없이 길게 나왔을 때, 또는 XML이 줄바꿈 없이 붙어 있을 때 그대로 붙여넣으면 됩니다. 자동 감지가 형식을 알아서 판별하고, 안 맞으면 위 탭에서 직접 골라 주세요.

  • JSON — 표준 JSON을 들여쓰기로 펼치거나 한 줄로 압축합니다.
  • 파이썬 dict' 따옴표, True/False/None, 튜플까지 인식해 보기 좋은 JSON으로 변환합니다.
  • XML — 태그 구조에 맞춰 들여쓰기를 다시 매깁니다.
  • 트리 뷰 — 중첩 구조를 접고 펼치며 살펴볼 수 있습니다.

괄호·기호 도감

이 기호들, 어디서 왔고 어디 쓰일까
{ }
중괄호 · curly brace

C 계열 언어에서 코드 블록을 묶는 기호이자, 수학에서는 집합을 나타냅니다. JSON·파이썬 dict에서는 키-값 객체를 감쌉니다.

[ ]
대괄호 · square bracket

배열·리스트의 표준 기호. 수학의 행렬과 구간 표기에서 출발했습니다. JSON에서는 순서 있는 배열을 뜻합니다.

< >
꺾쇠 · angle bracket

SGML의 후손인 HTML·XML에서 태그의 경계로 쓰입니다. 수학에서는 부등호(작다/크다)였습니다.

( )
소괄호 · parenthesis

파이썬에서 튜플을 만듭니다. JSON에는 튜플이 없어서, GoodFormat은 자동으로 [ ] 배열로 바꿉니다.

:
콜론 · colon

객체 안에서 키와 값을 가르는 구분자입니다. "key": value.

,
쉼표 · comma

항목을 구분합니다. JSON에서는 마지막 항목 뒤 쉼표(trailing comma)가 금지라 흔한 에러 원인이 됩니다.

" "
큰따옴표 · double quote

JSON에서 문자열과 키는 반드시 큰따옴표여야 합니다. 작은따옴표는 파이썬에선 되지만 JSON 표준에선 에러입니다.

true / null
리터럴 · literal

파이썬의 True·False·None이 JSON에서는 소문자 true·false·null입니다. 이름과 대소문자가 달라요.

JSON은 자바스크립트 객체 표기법에서 갈라져 나와 2000년대 초 더글러스 크록포드가 정리했고(ECMA-404 / RFC 8259), XML은 1998년 W3C가 SGML을 단순화해 권고안으로 발표했습니다.

자주 묻는 질문

겉모습은 비슷하지만 규칙이 다릅니다. 파이썬은 작은따옴표를 쓰고 True/False/None·튜플을 허용하지만, JSON은 큰따옴표만 쓰고 true/false/null에 튜플이 없습니다. GoodFormat은 파이썬 dict를 붙여넣으면 이 차이를 자동으로 변환해 줍니다.

JSON 표준(RFC 8259)이 문자열과 키를 큰따옴표로만 쓰도록 못 박았기 때문입니다. {'a':1}은 파이썬 문법이라 대부분의 JSON 파서가 거부합니다. JSON으로 보낼 거라면 큰따옴표로 바꿔야 합니다.

JSON 명세가 trailing comma를 허용하지 않습니다. [1, 2, 3,] 처럼 마지막 쉼표가 남으면 파싱이 실패합니다. 자바스크립트·파이썬 코드에선 되지만 JSON 데이터에선 빼야 합니다.

JSON에는 주석 문법이 아예 없습니다. 설계 단계에서 의도적으로 제외됐는데, 주석에 파서 지시문 같은 걸 끼워 넣어 호환성이 깨지는 걸 막기 위해서였습니다. 주석이 필요하면 JSON5·JSONC 같은 변형을 쓰거나 별도 필드에 메모를 담습니다.

유니코드 이스케이프 표기일 뿐 데이터는 멀쩡합니다. 파이썬에서 json.dumps(..., ensure_ascii=False)로 저장하면 한글이 그대로 보입니다. GoodFormat은 파싱 후 다시 출력하므로 한글이 정상적으로 표시됩니다.

한마디

로그인 없이, 닉네임만
0/500
  • 아직 한마디가 없습니다. 첫 댓글을 남겨보세요.