> 포맷 | 검증 | 축소 <

// JSON 데이터를 즉시 포맷, 검증 및 축소

[FORMAT]

예쁜 출력

사용자 정의 가능한 들여쓰기로 JSON을 정리합니다. 2칸, 4칸 또는 탭 중 선택하세요.

[MINIFY]

압축 출력

모든 공백을 제거하여 JSON을 축소합니다. 프로덕션 및 API용 크기를 줄입니다.

[VALIDATE]

구문 검사

JSON 구문을 즉시 검증합니다. 자세한 오류 메시지를 받아보세요.

// JSON 포맷팅에 대하여

JSON이란:

JSON(JavaScript Object Notation)은 RFC 8259에 정의된 경량 데이터 교환 형식입니다. 사람이 읽고 쓰기 쉽고, 기계가 파싱하고 생성하기 쉽습니다.

예시:

{"name":"John","age":30} → {\n "name": "John",\n "age": 30\n}

일반적인 사용 사례:

  • >API 응답 디버깅 및 검사
  • >설정 파일 포맷팅
  • >처리 전 데이터 검증
  • >축소를 통한 크기 감소
  • >일관된 출력을 위한 키 정렬

>> 자주 묻는 질문

Q: JSON 포맷터란?

A: JSON 포맷터는 원시 또는 축소된 JSON 데이터를 적절한 들여쓰기와 줄바꿈으로 재포맷하는 도구입니다.

Q: 정리와 축소의 차이는?

A: 정리는 들여쓰기와 줄바꿈을 추가하여 읽기 쉽게 합니다. 축소는 불필요한 공백을 모두 제거하여 파일 크기를 줄입니다.

Q: JSON 검증은 어떻게 작동하나요?

A: JSON 검증은 입력이 JSON 사양(RFC 8259)을 준수하는지 확인합니다. 괄호, 인용부호, 데이터 유형을 검증합니다.

Q: 키 정렬은 무엇을 하나요?

A: 알파벳순 키 정렬은 JSON 구조의 모든 객체 키를 재배열하여 비교와 일관성을 쉽게 합니다.

Q: JSON과 YAML 비교는?

A: JSON은 중괄호와 엄격한 구문을 사용하고, YAML은 들여쓰기 기반입니다. JSON은 API에서 더 널리 지원됩니다. YAML은 더 읽기 쉽지만 파싱이 복잡합니다.

// 흔한 JSON 오류

JavaScript에서는 허용되지만 엄격한 JSON에서는 유효하지 않은 표기입니다.

잘못됨올바름
{'a': 1}{"a": 1}
{"a": 1,}{"a": 1}
{a: 1}{"a": 1}
{"a": undefined}{"a": null}
{"a": 01}{"a": 1}

// 코드에서 JSON 포맷하기

JavaScript  JSON.stringify(obj, null, 2)
Python      json.dumps(obj, indent=2, ensure_ascii=False)
PHP         json_encode($obj, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
Go          json.MarshalIndent(v, "", "  ")
Java        new ObjectMapper().writerWithDefaultPrettyPrinter()
CLI         jq . file.json
CLI         python3 -m json.tool file.json

>> 더 많은 질문

Q: 들여쓰기는 스페이스 2칸, 4칸, 탭 중 무엇이 좋나요?

A: 팀 규칙에 따르면 되며 일관성이 가장 중요합니다. 스페이스 2칸은 웹 개발에서 흔하고 깊은 중첩에서 폭을 아끼며, 4칸은 Python에서 자주 쓰이고, 탭은 각자 표시 너비를 조절할 수 있습니다. 전송용으로는 들여쓰기 없는 minified JSON이 가장 작습니다.

Q: JSON이 유효하지 않다고 나오는 이유는?

A: 흔한 원인은 큰따옴표 대신 작은따옴표, 따옴표 없는 키, 마지막 요소 뒤 쉼표, 주석, undefined, NaN, 숫자 앞의 0입니다. 오류 메시지에는 보통 처음 실패한 줄과 열이 표시됩니다.

Q: JSON5와 JSONC는 무엇이며 JSON과 어떤 관계인가요?

A: JSON5와 JSONC는 주석, 후행 쉼표 등을 허용하는 확장 형식입니다(tsconfig.json, VS Code 설정 등). 유효한 JSON이 아니므로 포매터는 엄격한 JSON을 기대합니다. 먼저 주석과 후행 쉼표를 제거하세요.

// 다른 언어