본문으로 건너뛰기
AZ Tools

JSON 평탄화 / 복원 (점 표기)

중첩 JSON을 단일 레벨 점 표기 키로 평탄화하거나, 평탄한 키에서 중첩 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
}

객체 키에 구분자가 없는 한 평탄화와 복원은 정확한 역연산입니다 — 키에 점이 있으면 구분자를 바꾸세요.

사용법

  1. 평탄화 또는 복원 선택.
  2. 입력 상자에 JSON 붙여넣기.
  3. 대상 포맷에 맞게 구분자와 배열 표기를 설정한 뒤 결과 복사.

자세한 설명

펼치기

JSON을 붙여넣고 두 모드를 전환하세요. 평탄화는 중첩 객체·배열을 app.server.ports[0] 같은 경로 키를 가진 하나의 평탄한 객체로 접습니다 — 환경 변수, MongoDB 업데이트 경로, i18n 메시지 파일, CSV 열, 두 설정 비교에 유용합니다. 복원은 반대로 평탄한 점 표기 키를 다시 중첩 구조로 펼칩니다. 구분자(., /, _, -)와 배열을 대괄호 표기(items[0])로 쓸지 점 인덱스(items.0)로 쓸지 선택하세요. 빈 객체·배열도 리프로 보존되어 평탄화 → 복원 왕복이 입력과 정확히 같게 돌아옵니다. 모든 처리는 로컬에서 실행되며 JSON은 브라우저를 떠나지 않습니다.

자주 묻는 질문

변환이 가역적인가요?

일반 데이터는 그렇습니다. 같은 구분자와 배열 표기로 평탄화 후 복원하면 동일한 객체가 반환됩니다 — 빈 객체·배열과 null 값도 리프로 유지되어 손실이 없습니다. 단 하나의 예외는 아래와 같습니다.

객체 키에 구분자가 들어 있으면?

그러면 왕복이 모호해집니다. . 구분자로 평탄화한 a.b 키는 중첩 a → b와 구별되지 않아 복원 시 분리됩니다. 키에 점이 포함된다면 그 안에 없는 다른 구분자(예: /)를 선택하세요.

배열 인덱스는 어떻게 처리되나요?

대괄호 모드에서는 list[0], list[1]; 점 모드에서는 list.0, list.1이 됩니다. 복원 시 대괄호 인덱스는 배열 요소로 재구성되고, 점 표기를 선택했다면 순수 숫자 세그먼트도 마찬가지여서 평탄한 키 users.0.name은 객체 배열을 만듭니다. 대괄호 표기에서는 responses.200 같은 순수 숫자 세그먼트가 객체 키로 남으므로, 숫자를 키로 쓰는 객체(HTTP 상태 코드, ID)는 대괄호 모드에서는 그대로 왕복되지만 점 모드에서는 그렇지 않습니다. 100000을 넘는 인덱스는 배열을 그만큼의 null로 채우는 대신 항상 객체 키로 유지됩니다.

데이터 타입이 바뀌나요?

아니요. 숫자·불리언·null·문자열은 JSON 값 그대로 보존되고 키 구조만 바뀝니다. 출력 들여쓰기(0/2/4칸)는 서식에만 영향을 주며 내용은 그대로입니다.

관련 도구