JSON 평탄화 / 복원 (점 표기)
JSON을 붙여넣고 두 모드를 전환하세요. 평탄화는 중첩 객체·배열을 `app.server.ports[0]` 같은 경로 키를 가진 하나의 평탄한 객체로 접습니다 — 환경 변수, MongoDB 업데이트 경로, i18n 메시지 파일, CSV 열, 두 설정 비교에 유용합니다. 복원은 반대로 평탄한 점 표기 키를 다시 중첩 구조로 펼칩니다. 구분자(`.`, `/`, `_`, `-`)와 배열을 대괄호 표기(`items[0]`)로 쓸지 점 인덱스(`items.0`)로 쓸지 선택하세요. 빈 객체·배열도 리프로 보존되어 평탄화 → 복원 왕복이 입력과 정확히 같게 돌아옵니다. 모든 처리는 로컬에서 실행되며 JSON은 브라우저를 떠나지 않습니다.
출력 · 9 개 키
{
"app.name": "demo",
"app.version": "1.2.0",
"app.features[0]": "search",
"app.features[1]": "export",
"app.server.host": "localhost",
"app.server.ports[0]": 8080,
"app.server.ports[1]": 8081,
"flags.beta": true,
"flags.maxUsers": 100
}객체 키에 구분자가 없는 한 평탄화와 복원은 정확한 역연산입니다 — 키에 점이 있으면 구분자를 바꾸세요.
사용법
- 평탄화 또는 복원 선택.
- 입력 상자에 JSON 붙여넣기.
- 대상 포맷에 맞게 구분자와 배열 표기를 설정한 뒤 결과 복사.
자주 묻는 질문
- 변환이 가역적인가요?
- 일반 데이터는 그렇습니다. 같은 구분자와 배열 표기로 평탄화 후 복원하면 동일한 객체가 반환됩니다 — 빈 객체·배열과 null 값도 리프로 유지되어 손실이 없습니다. 단 하나의 예외는 아래와 같습니다.
- 객체 키에 구분자가 들어 있으면?
- 그러면 왕복이 모호해집니다. `.` 구분자로 평탄화한 `a.b` 키는 중첩 `a` → `b`와 구별되지 않아 복원 시 분리됩니다. 키에 점이 포함된다면 그 안에 없는 다른 구분자(예: `/`)를 선택하세요.
- 배열 인덱스는 어떻게 처리되나요?
- 대괄호 모드에서는 `list[0]`, `list[1]`; 점 모드에서는 `list.0`, `list.1`이 됩니다. 복원 시 대괄호 인덱스나 순수 숫자 세그먼트는 배열 요소로 재구성되어, 평탄한 키 `users.0.name`은 객체 배열을 만듭니다.
- 데이터 타입이 바뀌나요?
- 아니요. 숫자·불리언·null·문자열은 JSON 값 그대로 보존되고 키 구조만 바뀝니다. 출력 들여쓰기(0/2/4칸)는 서식에만 영향을 주며 내용은 그대로입니다.
관련 도구
JSON 키 정렬
JSON 객체 키를 알파벳순 정렬. 중첩 객체로 재귀해서 전체 문서 정규화 옵션.
유니코드 이스케이프 변환기
텍스트를 \uXXXX, U+XXXX, HTML 엔티티로 인코딩하고, 그 어떤 형식이든 다시 텍스트로 디코딩합니다. 이모지·확장 문자도 처리합니다.
CBOR 디코더 (진단 표기)
hex 또는 base64의 CBOR(RFC 8949)을 읽기 쉬운 진단 표기로 디코딩 — 정수, 바이트·텍스트 문자열, 배열, 맵, 태그, 부동소수점, 단순 값, 무한길이 항목 — 브라우저에서.
JSON 포맷터 & 검증기
브라우저에서 바로 JSON을 포맷·정렬·압축·검증하세요.
JWT 디코더
JWT의 헤더·클레임·만료를 즉시 확인하세요.
JSON Diff 뷰어
두 JSON을 구조적으로 비교 — 어떤 키가 추가·삭제·변경됐는지 정확히 보여 줍니다.