logo
GeekFormat

JSON 포맷터

아직 내용이 없습니다

preview.json
준비

무료 온라인 JSON 포맷 도구. JSON 뷰티파이, 검증, 압축, JSON 트리 시각적 편집을 지원합니다. 구문 오류 감지 및 자동 수리를 내장하고 13가지 프로그래밍 언어(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML)로의 코드 변환을 지원합니다. API 디버깅, 설정 확인, 로그 읽기에 적합합니다.

관련 추천

사용 사례

  • API 응답의 한 줄 JSON을 읽기 쉬운 구조로 뷰티파이하여 이슈 트러블슈팅 필요
  • 설정 파일, 로그 필드를 포맷팅한 후 추가 처리 필요
  • 개발 디버깅 시 JSON이 유효한지 빠르게 검증하고 크기 압축 필요
  • JSON를 TypeScript 인터페이스, Java 클래스, Python 딕셔너리 등의 코드 형식으로 변환 필요
  • 두 API 응답값을 비교할 때 키 이름으로 정렬한 후 필드별 차이 확인
  • 서드파티 API의 복잡한 중첩 구조를 정리하고 트리 뷰 또는 마인드맵으로 계층 빠르게 이해
  • 압축된 계측 로그, Webhook 데이터를 펼쳐 읽고 이상 필드 식별
  • 로컬 환경 변수 또는 설정 내 컴팩트한 JSON을 포맷팅하여 편집한 후 압축하여 다시 쓰기

주요 기능

  • JSON 뷰티파이가 더 직관적: 한 줄 데이터를 빠르게 읽기 쉬운 계층 구조로 정리하고 2/4칸 공백 또는 Tab 들여쓰기로 전환 가능
  • 검증과 압축 지원: 구문 오류를 실시간으로 감지하여 위치를 정확히 표시하고 원클릭으로 가장 컴팩트한 한 줄로 압축
  • 13가지 프로그래밍 언어로의 코드 변환: TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML을 원클릭 생성
  • JSON 트리 뷰 시각적 편집: 노드를 접고 펼쳐 깊게 중첩된 구조를 직관적으로 확인하고 수정
  • 마인드맵 뷰: 노드와 연결선으로 객체/배열의 부모-자식 관계를 표현하여 복잡한 구조 정리에 최적
  • 키 이름 정렬: 알파벳 오름차순/내림차순으로 객체 키를 재정렬하여 차이 비교와 필드 순서 정규화에 편리
  • 큰 파일도 원활 처리: 가상 스크롤 + Web Worker 백그라운드 파싱으로 수 MB JSON도 버벅이지 않음
  • 프라이버시 보안: 모든 과정이 브라우저 로컬에서 실행되어 데이터가 전혀 업로드되지 않으므로 키가 포함된 응답도 안심하고 처리 가능
  • 편리한 조작: 파일 업로드/다운로드, 원클릭 복사, 히스토리 되돌리기, URL 공유 등 필요한 기능이 모두 갖춰짐

이용 방법

  1. JSON 내용을 붙여넣거나 JSON 파일 업로드
  2. 뷰티파이, 압축, 검증 모드를 선택하거나 트리 뷰/마인드맵으로 전환하여 시각적으로 확인
  3. 포맷팅 후 계층 구조와 오류 메시지를 확인하고 필요시 코드 변환으로 전환하여 대상 언어 구조 생성
  4. 처리된 내용을 복사하거나 파일 다운로드 또는 공유 링크 생성

자주 묻는 질문

한 줄 JSON을 빠르게 읽기 쉬운 구조로 포맷팅하려면 어떻게 해야 하나요?

JSON 내용을 붙여넣기만 하면 빠르게 뷰티파이할 수 있어 API 응답값, 설정 파일, 로그 필드 확인에 적합합니다. 도구가 자동으로 들여쓰기와 줄바꿈을 추가하여 컴팩트한 데이터를 명확한 계층 구조로 정리합니다. 기본적으로 2칸 공백 들여쓰기를 사용하며, 툴바에서 들여쓰기 크기를 전환할 수도 있습니다.

JSON 포맷과 JSON 수리의 차이는 무엇인가요?

JSON 포맷은 그 자체로는 유효하지만 읽기 어려운 내용 처리에 더 적합하고, JSON 수리는 오류, 따옴표 누락, 끝 쉼표 등 무효한 구조 처리에 더 적합합니다. 포맷팅 시 오류가 표시되면 먼저 JSON 수리를 수행하는 것을 권장합니다. 간단히 말해, 포맷은 레이아웃만 조정하고 내용은 변경하지 않지만, 수리는 누락된 따옴표나 괄호를 보충하고 여분의 쉼표를 삭제하여 다시 유효한 JSON으로 만들려고 시도합니다.

JSON을 포맷팅할 때 오류가 표시되는 이유는 무엇인가요?

보통 내용 자체가 유효한 JSON이 아니기 때문입니다. 예를 들어 주석이 포함되어 있거나, 작은따옴표를 사용했거나, 끝 쉼표가 있거나, 괄호가 닫히지 않은 경우 등입니다. JSON 규격(RFC 8259)에서는 키 이름을 큰따옴표로 묶어야 하고, 문자열에 작은따옴표를 사용할 수 없으며, 마지막 요소 뒤에 쉼표를 둘 수 없고, // 이나 /* */ 주석을 허용하지 않습니다. 이런 경우 먼저 JSON 수리를 수행한 후 포맷팅하는 것을 권장합니다.

API 디버깅과 로그 응답 확인에 적합한가요?

매우 적합합니다. API 응답값, Webhook 데이터, 계측 로그, 설정 스니펫은 트러블슈팅 전에 먼저 포맷팅해야 하는 경우가 많습니다. 도구는 JSON 트리 뷰에서의 시각적 편집, 마인드맵 뷰, 13가지 프로그래밍 언어로의 코드 변환도 지원하여 데이터 구조를 빠르게 이해하는 데 도움을 줍니다.

JSON을 TypeScript 인터페이스나 Java 클래스로 변환할 수 있나요?

네. 도구는 JSON을 TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 총 13가지 형식으로 변환하여 원클릭으로 해당 코드 구조를 생성할 수 있습니다. API 응답값으로부터 프론트엔드와 백엔드의 데이터 모델을 빠르게 생성하는 데 매우 적합합니다.

포맷팅한 JSON 데이터가 서버에 업로드되나요?

아니요. 모든 포맷팅, 검증, 압축, 코드 변환은 완전히 브라우저 로컬에서 실행되며 데이터가 서버에 업로드되지 않습니다. 키, 토큰, 사용자 개인정보가 포함된 API 응답값을 처리해도 안전하며, 페이지를 닫으면 데이터가 즉시 삭제됩니다.

큰 JSON 파일을 처리할 수 있나요?

네. 도구는 가상 스크롤 렌더링과 Web Worker를 이용한 백그라운드 파싱을 채택하여 수 MB의 JSON도 원활하게 포맷팅하고 탐색할 수 있어 페이지가 멈추지 않습니다. 아주 큰 파일의 경우 붙여넣기보다 JSON 파일을 직접 업로드하는 것을 권장합니다. 더 안정적인 성능을 얻을 수 있습니다.

JSON 압축(Minify)은 어떤 용도인가요?

압축은 JSON 내의 모든 여분의 공백과 줄바꿈을 삭제하여 가장 컴팩트한 한 줄 결과를 얻습니다. 이를 통해 크기가 크게 줄어들어 대역폭과 스토리지를 절약할 수 있습니다. API 전송, 설정에 쓰기, 코드에 삽입, 환경 변수로 사용할 때 자주 사용됩니다. 압축 후 JSON은 포맷팅 전과 의미상 완전히 일치하지만 사람이 읽기에는 불편해집니다.

JSON 트리 뷰와 마인드맵 뷰는 무엇인가요?

트리 뷰는 JSON을 접고 펼칠 수 있는 계층 트리로 렌더링하여 노드 펼치기/접기, 필드 시각적 편집을 지원하므로 깊게 중첩된 데이터 탐색에 적합합니다. 마인드맵 뷰는 구조를 노드와 연결선으로 표현하여 객체와 배열의 부모-자식 관계를 시각적으로 보여주므로 복잡한 데이터 구조를 정리하거나 프레젠테이션에서 설명할 때 적합합니다.

포맷팅 후 키 이름으로 정렬할 수 있나요?

네. 도구는 키 이름 정렬 기능을 제공하여 알파벳 오름차순 또는 내림차순으로 객체의 키를 재정렬할 수 있습니다. 이를 통해 두 JSON의 차이를 비교하거나, 설정 파일 필드 순서를 정규화하거나, 코드 리뷰를 위해 API 필드를 고정 순서로 표시하는 데 편리합니다.

포맷팅 결과를 동료와 공유할 수 있나요?

네. 도구는 현재 JSON 내용을 URL에 압축 인코딩하여 공유 가능한 링크를 생성하는 기능을 지원합니다. 상대방이 링크를 열면 동일한 데이터가 표시되며 서버에 업로드할 필요 없어 API 이슈를 빠르게 공동 트러블슈팅하거나 데이터 시나리오를 재현하는 데 적합합니다.

JSON과 JSON 포맷에 대해

JSON(JavaScript Object Notation)은 가벼운 데이터 교환 형식으로, 키-값 쌍과 배열 구조를 사용하여 데이터를 표현합니다. 그 간결함, 읽기 쉬움, 언어 비의존적 특성으로 인해 Web API, 설정 파일, 로그, 프론트엔드-백엔드 간 데이터 전송의 사실상 표준이 되었습니다. JSON에는 문자열, 숫자, 불리언, null, 객체, 배열의 6가지 기본값 타입만 있으며, 구문 규칙은 RFC 8259와 ECMA-404 두 가지 표준으로 공동 정의됩니다.

JSON 포맷팅(JSON 뷰티파이, JSON Beautify라고도 함)은 데이터 내용을 변경하지 않고 컴팩트한 JSON에 적절한 들여쓰기와 줄바꿈을 추가하여 계층 구조를 가진 사람이 읽기 쉬운 형식으로 정리하는 것입니다. API 응답값, 로그, 스토리지 내 JSON은 종종 한 줄로 압축되어 있어 직접 읽기가 매우 어렵습니다. 포맷팅하면 객체 중첩, 배열 요소, 각 필드의 값이 명확하게 보입니다.

포맷팅의 반대 작업은 JSON 압축(Minify)입니다. 이는 모든 불필요한 공백 문자를 삭제하여 JSON을 가장 컴팩트한 한 줄 형식으로 되돌려 전송 크기를 줄이는 데 사용됩니다. 포맷팅과 압축은 가역적인 한 쌍의 작업으로, 둘 다 JSON의 의미를 변경하지 않고 가독성과 크기에만 영향을 줍니다.

JSON 검증은 텍스트가 JSON 구문 규격을 준수하는지 확인하는 것입니다. 흔한 무효한 작성 방식에는 큰따옴표 대신 작은따옴표 사용, 키 이름을 따옴표로 묶지 않음, 마지막 요소 뒤에 여분의 끝 쉼표가 있음, // 이나 /* */ 주석 포함, 괄호나 따옴표가 올바르게 닫히지 않음 등이 있습니다. 이들은 유효한 JSON이 아니므로 포맷팅 시 오류가 발생합니다. 이 경우 먼저 JSON 수리 도구로 처리한 후 포맷팅해야 합니다.

본 도구는 포맷팅 외에도 트리 뷰, 마인드맵 뷰, 13가지 프로그래밍 언어로의 코드 변환 기능도 제공합니다: JSON을 접고 펼칠 수 있는 시각적 계층 트리로 만들어 깊은 구조를 탐색하거나, API 응답 JSON을 원클릭으로 TypeScript 인터페이스, Java 클래스, Python 딕셔너리, 데이터베이스 CREATE TABLE 문으로 변환하여 개발에 직접 사용할 수 있습니다. 모든 처리는 브라우저 로컬에서 완료되며 데이터가 서버에 업로드되지 않습니다.

JSON 데이터 타입 속참표

JSON에는 6가지 값 타입만 있습니다. 이들을 이해하면 데이터가 유효한지 빠르게 판단하고 프로그래밍 언어 타입에 어떻게 매핑되는지 이해하는 데 도움이 됩니다.

타입예시설명
string"hello"문자열. 큰따옴표로 묶어야 하며 이스케이프 문자와 \uXXXX Unicode 인코딩을 지원합니다.
number25 / 3.14 / -1e5숫자. 정수, 소수, 지수 표기법을 지원하며 배정밀도 부동소수점으로 파싱되고 정수형과 부동소수점형을 구분하지 않습니다.
booleantrue / false불리언 값. 소문자 true 또는 false만 사용할 수 있습니다.
nullnullnull 값. 데이터가 없음을 나타내며 반드시 소문자여야 하고 빈 문자열이나 0과 다릅니다.
object{"k": "v"}객체. 중괄호로 묶인 키-값 쌍의 컬렉션으로 키는 큰따옴표로 묶인 문자열이어야 합니다.
array[1, 2, 3]배열. 대괄호로 묶인 순서가 있는 값 목록으로 요소 타입이 달라도 됩니다.

JSON 문자열 이스케이프 문자표

JSON 문자열 내의 다음 문자는 반드시 역슬래시로 이스케이프해야 합니다. 그렇지 않으면 파싱 오류가 발생합니다.

이스케이프의미
\"큰따옴표
\\역슬래시
\/슬래시 (이스케이프 선택사항)
\n줄바꿈 문자
\r캐리지 리턴 문자
\t탭 문자 Tab
\b백스페이스 문자
\f폼 피드 문자
\uXXXX4자리 16진수로 표현되는 Unicode 문자

흔한 무효 작성 방식 대조표

다음은 실수하기 쉬운 무효한 JSON 작성 방식과 그 유효한 형식입니다. 포맷팅 오류 발생 시 대조하여 확인해 보세요.

무효 작성유효 작성설명
{name: "a"}{"name": "a"}키 이름은 큰따옴표로 묶어야 합니다
{'name': 'a'}{"name": "a"}문자열은 큰따옴표로 묶어야 하며 작은따옴표는 사용할 수 없습니다
{"a": 1,}{"a": 1}끝 쉼표는 허용되지 않습니다
{"a": 1} // 주석{"a": 1}JSON은 주석을 지원하지 않습니다
{"a": undefined}{"a": null}undefined가 없으며 null을 사용하여 빈 값을 나타냅니다
{"a": .5}{"a": 0.5}소수에는 정수부 0이 필요합니다

Code Examples

JavaScript: JSON.stringify를 사용하여 JSON 포맷팅

javascript

브라우저와 Node.js에 내장된 JSON.stringify의 세 번째 매개변수로 들여쓰기를 지정할 수 있어 가장 흔한 프로그래밍 방식으로 JSON을 포맷팅할 수 있습니다.

const data = { name: '张三', age: 25, tags: ['a', 'b'] };

// 뷰티파이: 세 번째 매개변수가 들여쓰기 공백 수 ('\t'를 전달하면 Tab도 사용 가능)
const pretty = JSON.stringify(data, null, 2);
console.log(pretty);

// 압축: 세 번째 매개변수를 전달하지 않으면 가장 컴팩트한 한 줄이 됨
const mini = JSON.stringify(data);
console.log(mini); // {"name":"张三","age":25,"tags":["a","b"]}

// 문자열을 객체로 파싱 (구문을 검증하고 무효 시 SyntaxError 발생)
const obj = JSON.parse(pretty);

Python: json 모듈을 사용하여 포맷팅

python

Python 표준 라이브러리 json은 indent 매개변수와 ensure_ascii 매개변수로 들여쓰기와 한글 표시를 제어합니다.

import json

data = {"name": "张三", "age": 25, "tags": ["a", "b"]}

# 뷰티파이 출력, indent로 들여쓰기 지정, ensure_ascii=False로 한글 유지
pretty = json.dumps(data, indent=2, ensure_ascii=False)
print(pretty)

# 압축 출력: 가장 컴팩트한 구분자 사용
mini = json.dumps(data, separators=(",", ":"), ensure_ascii=False)
print(mini)

# 문자열 파싱 (무효 시 json.JSONDecodeError 발생)
obj = json.loads(pretty)

명령줄: jq를 사용하여 JSON 포맷팅

bash

jq는 명령줄에서 JSON을 처리하는 강력한 도구로 빠르게 뷰티파이, 압축, 필드 추출을 할 수 있습니다.

# 뷰티파이 (기본 2칸 공백 들여쓰기)
cat data.json | jq '.'

# 한 줄로 압축
cat data.json | jq -c '.'

# 지정 필드 추출
cat data.json | jq '.user.name'

# curl 결과를 직접 파이프로 뷰티파이
curl -s https://api.example.com/user | jq '.'

Privacy & Security

본 도구의 모든 JSON 포맷팅, 검증, 압축, 코드 변환은 완전히 사용자의 브라우저 로컬에서 실행되며, 데이터가 어떤 서버에도 업로드되지 않고 원격에 기록되거나 캐시되지도 않습니다. 키, 토큰, 사용자 정보가 포함된 API 응답을 처리해도 안전하며, 페이지를 닫거나 새로고침하면 데이터가 즉시 삭제됩니다.

Authoritative References

Troubleshooting

Unexpected token ... in JSON (예기치 않은 문자/구문 오류)

대부분 작은따옴표 사용, 키 이름이 큰따옴표로 묶이지 않음, 또는 // , /* */ 주석이 포함된 것이 원인입니다. JSON 규격에서는 모든 문자열과 키 이름을 큰따옴표로 묶어야 하고 주석을 지원하지 않습니다. 큰따옴표로 바꾸고 주석을 삭제하거나 먼저 JSON 수리 도구로 처리해 주세요.

Unexpected end of JSON input (내용이 예기치 않게 종료됨)

보통 괄호 {} 또는 [], 따옴표가 올바르게 닫히지 않아 JSON이 불완전한 경우입니다. 구조가 쌍으로 닫혀 있는지 확인해 주세요. API 응답값을 붙여넣을 때 내용의 일부만 복사되었을 수도 있으니 전체가 복사되었는지 확인해 주세요.

끝 쉼표로 인한 오류 (Trailing comma)

JSON에서는 객체 또는 배열의 마지막 요소 뒤에 쉼표를 두는 것이 허용되지 않습니다. 예를 들어 {"a":1,} 이나 [1,2,] 는 무효합니다. 여분의 쉼표를 삭제해 주세요. JavaScript 객체에서는 끝 쉼표가 허용되지만 JSON에서는 허용되지 않으므로 코드에서 복사할 때 특히 주의해 주세요.

한글이나 특수문자가 \uXXXX로 표시됩니다

이것은 JSON의 Unicode 이스케이프 표기이며 그 자체로는 유효합니다. 포맷팅 후에도 정상적으로 파싱할 수 있습니다. 한글을 직접 표시하고 싶으면 생성 측에서 이스케이프하지 않도록 설정하세요(Python의 ensure_ascii=False, Go의 HTML 이스케이프 끄기 등).

큰 숫자의 정밀도가 손실됩니다(ID가 지수 표기법이 되거나 끝자리가 0이 됨)

JSON 숫자는 IEEE 754 배정밀도 부동소수점으로 파싱되므로 2^53을 초과하는 정수(스노우플레이크 ID, 주문번호 등)는 정밀도가 손실됩니다. 해결 방법은 전송 시 큰 정수를 문자열로 감싸는 것입니다. 즉 "id": "9007199254740993"과 같이 하여 숫자로 파싱되는 것을 피합니다.

포맷팅 후 다시 한 줄로 돌리고 싶습니다

'압축/Minify'로 전환하기만 하면 뷰티파이된 여러 줄 JSON을 다시 가장 컴팩트한 한 줄로 되돌릴 수 있어 API 전송, 설정에 쓰기, 코드에 삽입에 사용할 수 있습니다. 압축과 뷰티파이는 서로 역작업이며 데이터 내용은 변경되지 않습니다.