본문 바로가기

JSON Flatten·Unflatten

브라우저 처리

중첩된 JSON을 user.address.city 같은 점 경로 한 단계 객체로 펼치고, 펼친 객체를 다시 원래 중첩 구조로 되돌립니다. 배열은 tags.0처럼 번호 경로가 됩니다.

사용 전 확인
  • 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
도구 실행입력 후 결과 확인
JSON Flatten·Unflatten 샘플 실행

스프레드시트 열 이름, 환경 변수, 번역 키처럼 한 단계짜리 이름표가 필요한 곳에 중첩 JSON을 넣으려면 구조를 펼쳐야 합니다. 이 도구는 객체를 끝까지 따라 내려가 값이 있는 자리마다 'user.address.city' 같은 점 경로를 키로 만들고, 배열 항목은 'tags.0', 'tags.1'처럼 순번을 붙입니다.

브라우저 처리
샘플 결과
{
  "user.name": "Kim",
  "user.address.city": "Seoul",
  "tags.0": "vip",
  "tags.1": "new"
}
자바스크립트가 활성화되면 이 영역이 실제 입력, 실행, 결과 패널로 바뀝니다.

JSON Flatten·Unflatten 사용 가이드

스프레드시트 열 이름, 환경 변수, 번역 키처럼 한 단계짜리 이름표가 필요한 곳에 중첩 JSON을 넣으려면 구조를 펼쳐야 합니다. 이 도구는 객체를 끝까지 따라 내려가 값이 있는 자리마다 'user.address.city' 같은 점 경로를 키로 만들고, 배열 항목은 'tags.0', 'tags.1'처럼 순번을 붙입니다.

작업을 '되돌리기'로 바꾸면 반대로 점 경로 객체를 받아 중첩 구조를 다시 세웁니다. 경로의 다음 칸이 0, 1 같은 숫자면 배열을, 글자면 객체를 만들기 때문에 펼친 결과를 그대로 넣으면 원래 JSON과 같아집니다.

비어 있는 {}와 []는 더 펼칠 것이 없으므로 그 자리에 빈 값으로 남습니다. 'a'와 'a.b'처럼 한 경로가 값이면서 동시에 상위 객체여야 하는 입력은 '서로 충돌하는 경로'로 알려 줍니다.

사용 방법

  1. 'JSON' 칸에 펼칠 중첩 JSON이나 되돌릴 점 경로 객체를 붙여 넣습니다.
  2. '작업'에서 '펼치기: 중첩 → 점 경로' 또는 '되돌리기: 점 경로 → 중첩'을 고릅니다.
  3. '실행'을 눌러 결과 JSON을 확인하고 복사하거나 .json 파일로 받습니다.

예시: 회원 정보 펼치기

입력
{"user":{"name":"Kim","address":{"city":"Seoul"}},"tags":["vip","new"]}
결과
{
  "user.name": "Kim",
  "user.address.city": "Seoul",
  "tags.0": "vip",
  "tags.1": "new"
}

같은 결과를 '되돌리기'로 실행하면 처음의 중첩 JSON이 다시 나옵니다.

이럴 때 쓰면 좋아요

  • 중첩 JSON을 표 형태로 옮기기 전에 열 이름이 될 경로를 미리 만들어 볼 때
  • i18n 번역 파일을 'home.title' 같은 평평한 키 목록으로 바꿔 누락 키를 비교할 때
  • 설정 객체를 APP_USER_NAME 같은 환경 변수로 옮기기 전에 경로를 정리할 때
  • 평평한 키로 저장된 폼 데이터를 다시 중첩 객체로 묶어 API에 보낼 때

문제가 생겼을 때

'서로 충돌하는 경로입니다' 오류

"a": 1과 "a.b": 2가 함께 있으면 a가 숫자이면서 객체여야 해서 되돌릴 수 없습니다. 둘 중 하나의 이름을 바꾸세요.

키 이름에 점이 들어 있던 값이 엉뚱하게 쪼개짐

"file.name" 같은 키는 펼친 뒤 되돌리면 file 객체 아래 name 키로 나뉩니다. "v1.2"처럼 뒤가 숫자면 배열의 2번 항목이 됩니다. 점이 들어간 키는 펼치기 전에 file_name처럼 바꿔 두세요.

활용 팁

  • 되돌리기에서 tags.0, tags.2처럼 번호가 건너뛰면 빈 자리는 결과 JSON에서 null로 채워집니다.
  • 배열 경로 번호는 0부터 100,000까지만 받으므로, 큰 번호가 필요한 데이터는 배열 대신 객체 키로 저장하세요.

자주 묻는 질문

구분자를 점 대신 _나 /로 바꿀 수 있나요?

점으로 고정입니다. 다른 구분자가 필요하면 결과를 복사한 뒤 편집기의 찾아 바꾸기로 키의 점을 바꾸면 됩니다.

숫자, true, null 같은 값의 형식은 유지되나요?

네. 경로만 바뀌고 값은 문자열로 바꾸지 않으므로 800은 숫자, true는 불리언, null은 null 그대로 남습니다.

최상위가 배열인 JSON도 펼쳐지나요?

펼치기는 됩니다. 0.name, 1.name처럼 번호로 시작하는 경로가 나옵니다. 다만 되돌리기 입력은 점 경로를 키로 가진 객체여야 합니다.