JSON

JSON Path Extractor / Flatten

중첩된 JSON을 "경로: 값" 형태의 평면 목록으로 펼치고(Flatten), 다시 중첩 구조로 재구성(Unflatten). 경로 표기법은 JSONPath/JSON Diff와 동일합니다: store.book[0].price.

Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.

How to use it

Common uses

Things to keep in mind

Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.

Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.

이 도구에 대한 아티클: JSON Flatten: 중첩된 구조를 평평한 목록으로 바꾸기

자주 묻는 질문

JSON을 "평탄화(flatten)"한다는 것은 무슨 뜻인가요?

중첩된 JSON 구조를 store.book[0].price처럼 점과 대괄호 표기법을 사용한 "경로: 값" 형태의 평평한 목록으로 바꾸는 것을 의미합니다.

평탄화한 데이터를 다시 원래 구조로 되돌릴 수 있나요?

네, 반대 방향 변환(unflatten)도 지원하므로 평평한 목록에서 원래의 중첩 구조를 다시 만들 수 있습니다.

배열 요소는 경로에서 어떻게 표현되나요?

[0], [1]처럼 인덱스가 붙은 키 형태로 경로에 포함됩니다.

실제 키 이름 자체에 점이 포함되어 있으면 어떻게 되나요?

이는 모호한 상황입니다. 경로 user.name은 중첩 객체 {"user": {"name": ...}}를 의미할 수도 있고, 평면 키 {"user.name": ...}를 의미할 수도 있습니다. 점 표기법 자체는 이 둘을 구분하지 못하므로, 이런 키는 피하거나 별도로 처리하는 것이 좋습니다.

이런 도구들의 경로 표기 형식은 모두 동일한가요?

아닙니다. 객체에 대한 점 표기법(user.name)은 거의 어디서나 공통적으로 쓰이지만, 배열 인덱스 표기는 도구마다 다릅니다 — 여기서는 items[0] 형태를 사용하지만, 대괄호 없이 items.0으로 표기하는 라이브러리도 있습니다.

아티클: JSON