-
JSON 데이터를 사람이 읽기 쉽게 정렬하면서도 압축된 형태로 유지하는 포매팅 유틸리티 모음
- 배열과 객체를 가능한 한 한 줄로 표현하고, 구조가 유사한 경우 테이블 형태로 정렬
-
주석 보존 기능을 지원하며, JSON 표준에는 없지만 실제 사용 환경에서 흔한 주석을 함께 유지
-
.NET 라이브러리, JavaScript/TypeScript 패키지, VS Code 확장, 브라우저 포매터 등 다양한 환경에서 사용 가능
- 기존 JSON 포매터의 가독성 한계를 개선해, 개발자와 데이터 분석가의 시각적 이해도를 높이는 도구
FracturedJson 개요
-
FracturedJson은 사람이 읽기 쉬우면서도 비교적 컴팩트한 JSON 포맷을 생성하는 유틸리티 모음
- 배열과 객체는 너무 길거나 복잡하지 않으면 한 줄로 출력
- 구조가 유사한 여러 줄은 필드를 정렬해 표 형태로 표시
- 긴 배열은 여러 줄에 걸쳐 여러 항목을 한 줄에 배치
- 다양한 설정을 통해 출력 형식을 제어할 수 있으며, 대부분의 경우 기본 설정만으로도 보기 좋은 결과 생성
- 브라우저 기반 포매터 페이지, .NET 라이브러리, JavaScript/TypeScript 패키지, VS Code 확장으로 제공
- Python용 옵션도 별도로 안내되어 있음
Motivation
- 대부분의 JSON 라이브러리는 두 가지 형식만 제공
-
Minified JSON: 효율적이지만 사람이 읽기 어려움
-
Beautified/Indented JSON: 지나치게 넓게 퍼져 있어 빠른 파악이 어려움
- FracturedJson은 사람이 직접 작성하듯 데이터를 포맷
- 너무 복잡하거나 긴 경우를 제외하고 컨테이너를 한 줄로 유지
- 유사한 배열이나 객체는 테이블 형태로 정렬
작동 방식 (How It Works)
- FracturedJson은 네 가지 포매팅 유형을 사용
-
Inlined: 짧고 단순한 객체나 배열을 한 줄로 표현
-
MaxInlineComplexity 설정으로 허용되는 중첩 수준 제어
-
Compact Multiline Array: 여러 항목을 한 줄에 배치하되 여러 줄로 나누어 표시
-
MaxCompactArrayComplexity로 중첩 허용도 조정, -1로 비활성화 가능
-
Table: 유사한 구조의 항목을 열 맞춤 형태로 정렬
- 내부 컨테이너가 너무 복잡할 경우 일부만 축소
-
MaxTableRowComplexity와 TableCommaPlacement로 제어 가능
-
Expanded: 위 조건에 맞지 않는 경우, 각 항목을 여러 줄로 들여쓰기하여 표시
주석 처리
- JSON 표준은 주석을 허용하지 않지만, FracturedJson은 주석 보존 기능을 지원
- 주석은 관련된 요소와 함께 유지되며, 다중 행 주석과 인라인 주석 모두 처리 가능
Discussions
- 사용자 질문, 피드백, 제안 등을 위한 GitHub Discussions 공간 제공
- 프로젝트 관련 토론 및 개선 제안 가능