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칸)는 서식에만 영향을 주며 내용은 그대로입니다.
관련 도구
Base64 ↔ 16진수 변환기
Base64 문자열을 16진수 바이트로, 16진수를 다시 Base64로 변환합니다. URL-safe 지원, 브라우저에서 동작합니다.
Quoted-Printable 인코더 & 디코더
텍스트를 MIME Quoted-Printable(RFC 2045)로 인코딩하거나 다시 디코딩 — =XX 이스케이프·소프트 줄바꿈·UTF-8 처리, 인코딩 시 76자 줄바꿈 — 브라우저에서.
해시 생성기 (SHA)
텍스트로 SHA-1·SHA-256·SHA-384·SHA-512 해시를 생성하세요.
URL 인코더 / 디코더
URL용으로 텍스트를 퍼센트 인코딩하거나, 인코딩된 URL을 디코딩하세요.
Base64 인코더 / 디코더
텍스트를 Base64로 인코딩하거나 다시 텍스트로 디코딩하세요.
JSON 포맷터 & 검증기
브라우저에서 바로 JSON을 포맷·정렬·압축·검증하세요.