JSON 포맷터
아직 내용이 없습니다
무료 온라인 JSON 포맷 도구. JSON 뷰티파이, 검증, 압축, JSON 트리 시각적 편집을 지원합니다. 구문 오류 감지 및 자동 수리를 내장하고 13가지 프로그래밍 언어(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML)로의 코드 변환을 지원합니다. API 디버깅, 설정 확인, 로그 읽기에 적합합니다.
아직 내용이 없습니다
무료 온라인 JSON 포맷 도구. JSON 뷰티파이, 검증, 압축, JSON 트리 시각적 편집을 지원합니다. 구문 오류 감지 및 자동 수리를 내장하고 13가지 프로그래밍 언어(TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML)로의 코드 변환을 지원합니다. API 디버깅, 설정 확인, 로그 읽기에 적합합니다.
JSON 내용을 붙여넣기만 하면 빠르게 뷰티파이할 수 있어 API 응답값, 설정 파일, 로그 필드 확인에 적합합니다. 도구가 자동으로 들여쓰기와 줄바꿈을 추가하여 컴팩트한 데이터를 명확한 계층 구조로 정리합니다. 기본적으로 2칸 공백 들여쓰기를 사용하며, 툴바에서 들여쓰기 크기를 전환할 수도 있습니다.
JSON 포맷은 그 자체로는 유효하지만 읽기 어려운 내용 처리에 더 적합하고, JSON 수리는 오류, 따옴표 누락, 끝 쉼표 등 무효한 구조 처리에 더 적합합니다. 포맷팅 시 오류가 표시되면 먼저 JSON 수리를 수행하는 것을 권장합니다. 간단히 말해, 포맷은 레이아웃만 조정하고 내용은 변경하지 않지만, 수리는 누락된 따옴표나 괄호를 보충하고 여분의 쉼표를 삭제하여 다시 유효한 JSON으로 만들려고 시도합니다.
보통 내용 자체가 유효한 JSON이 아니기 때문입니다. 예를 들어 주석이 포함되어 있거나, 작은따옴표를 사용했거나, 끝 쉼표가 있거나, 괄호가 닫히지 않은 경우 등입니다. JSON 규격(RFC 8259)에서는 키 이름을 큰따옴표로 묶어야 하고, 문자열에 작은따옴표를 사용할 수 없으며, 마지막 요소 뒤에 쉼표를 둘 수 없고, // 이나 /* */ 주석을 허용하지 않습니다. 이런 경우 먼저 JSON 수리를 수행한 후 포맷팅하는 것을 권장합니다.
매우 적합합니다. API 응답값, Webhook 데이터, 계측 로그, 설정 스니펫은 트러블슈팅 전에 먼저 포맷팅해야 하는 경우가 많습니다. 도구는 JSON 트리 뷰에서의 시각적 편집, 마인드맵 뷰, 13가지 프로그래밍 언어로의 코드 변환도 지원하여 데이터 구조를 빠르게 이해하는 데 도움을 줍니다.
네. 도구는 JSON을 TypeScript/Java/Python/Go/Rust/Swift/Kotlin/C#/C++/PHP/MySQL/YAML/XML 총 13가지 형식으로 변환하여 원클릭으로 해당 코드 구조를 생성할 수 있습니다. API 응답값으로부터 프론트엔드와 백엔드의 데이터 모델을 빠르게 생성하는 데 매우 적합합니다.
아니요. 모든 포맷팅, 검증, 압축, 코드 변환은 완전히 브라우저 로컬에서 실행되며 데이터가 서버에 업로드되지 않습니다. 키, 토큰, 사용자 개인정보가 포함된 API 응답값을 처리해도 안전하며, 페이지를 닫으면 데이터가 즉시 삭제됩니다.
네. 도구는 가상 스크롤 렌더링과 Web Worker를 이용한 백그라운드 파싱을 채택하여 수 MB의 JSON도 원활하게 포맷팅하고 탐색할 수 있어 페이지가 멈추지 않습니다. 아주 큰 파일의 경우 붙여넣기보다 JSON 파일을 직접 업로드하는 것을 권장합니다. 더 안정적인 성능을 얻을 수 있습니다.
압축은 JSON 내의 모든 여분의 공백과 줄바꿈을 삭제하여 가장 컴팩트한 한 줄 결과를 얻습니다. 이를 통해 크기가 크게 줄어들어 대역폭과 스토리지를 절약할 수 있습니다. API 전송, 설정에 쓰기, 코드에 삽입, 환경 변수로 사용할 때 자주 사용됩니다. 압축 후 JSON은 포맷팅 전과 의미상 완전히 일치하지만 사람이 읽기에는 불편해집니다.
트리 뷰는 JSON을 접고 펼칠 수 있는 계층 트리로 렌더링하여 노드 펼치기/접기, 필드 시각적 편집을 지원하므로 깊게 중첩된 데이터 탐색에 적합합니다. 마인드맵 뷰는 구조를 노드와 연결선으로 표현하여 객체와 배열의 부모-자식 관계를 시각적으로 보여주므로 복잡한 데이터 구조를 정리하거나 프레젠테이션에서 설명할 때 적합합니다.
네. 도구는 키 이름 정렬 기능을 제공하여 알파벳 오름차순 또는 내림차순으로 객체의 키를 재정렬할 수 있습니다. 이를 통해 두 JSON의 차이를 비교하거나, 설정 파일 필드 순서를 정규화하거나, 코드 리뷰를 위해 API 필드를 고정 순서로 표시하는 데 편리합니다.
네. 도구는 현재 JSON 내용을 URL에 압축 인코딩하여 공유 가능한 링크를 생성하는 기능을 지원합니다. 상대방이 링크를 열면 동일한 데이터가 표시되며 서버에 업로드할 필요 없어 API 이슈를 빠르게 공동 트러블슈팅하거나 데이터 시나리오를 재현하는 데 적합합니다.
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에는 6가지 값 타입만 있습니다. 이들을 이해하면 데이터가 유효한지 빠르게 판단하고 프로그래밍 언어 타입에 어떻게 매핑되는지 이해하는 데 도움이 됩니다.
| 타입 | 예시 | 설명 |
|---|---|---|
string | "hello" | 문자열. 큰따옴표로 묶어야 하며 이스케이프 문자와 \uXXXX Unicode 인코딩을 지원합니다. |
number | 25 / 3.14 / -1e5 | 숫자. 정수, 소수, 지수 표기법을 지원하며 배정밀도 부동소수점으로 파싱되고 정수형과 부동소수점형을 구분하지 않습니다. |
boolean | true / false | 불리언 값. 소문자 true 또는 false만 사용할 수 있습니다. |
null | null | null 값. 데이터가 없음을 나타내며 반드시 소문자여야 하고 빈 문자열이나 0과 다릅니다. |
object | {"k": "v"} | 객체. 중괄호로 묶인 키-값 쌍의 컬렉션으로 키는 큰따옴표로 묶인 문자열이어야 합니다. |
array | [1, 2, 3] | 배열. 대괄호로 묶인 순서가 있는 값 목록으로 요소 타입이 달라도 됩니다. |
JSON 문자열 내의 다음 문자는 반드시 역슬래시로 이스케이프해야 합니다. 그렇지 않으면 파싱 오류가 발생합니다.
| 이스케이프 | 의미 |
|---|---|
\" | 큰따옴표 |
\\ | 역슬래시 |
\/ | 슬래시 (이스케이프 선택사항) |
\n | 줄바꿈 문자 |
\r | 캐리지 리턴 문자 |
\t | 탭 문자 Tab |
\b | 백스페이스 문자 |
\f | 폼 피드 문자 |
\uXXXX | 4자리 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이 필요합니다 |
브라우저와 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은 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을 처리하는 강력한 도구로 빠르게 뷰티파이, 압축, 필드 추출을 할 수 있습니다.
# 뷰티파이 (기본 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 '.'
본 도구의 모든 JSON 포맷팅, 검증, 압축, 코드 변환은 완전히 사용자의 브라우저 로컬에서 실행되며, 데이터가 어떤 서버에도 업로드되지 않고 원격에 기록되거나 캐시되지도 않습니다. 키, 토큰, 사용자 정보가 포함된 API 응답을 처리해도 안전하며, 페이지를 닫거나 새로고침하면 데이터가 즉시 삭제됩니다.
대부분 작은따옴표 사용, 키 이름이 큰따옴표로 묶이지 않음, 또는 // , /* */ 주석이 포함된 것이 원인입니다. JSON 규격에서는 모든 문자열과 키 이름을 큰따옴표로 묶어야 하고 주석을 지원하지 않습니다. 큰따옴표로 바꾸고 주석을 삭제하거나 먼저 JSON 수리 도구로 처리해 주세요.
보통 괄호 {} 또는 [], 따옴표가 올바르게 닫히지 않아 JSON이 불완전한 경우입니다. 구조가 쌍으로 닫혀 있는지 확인해 주세요. API 응답값을 붙여넣을 때 내용의 일부만 복사되었을 수도 있으니 전체가 복사되었는지 확인해 주세요.
JSON에서는 객체 또는 배열의 마지막 요소 뒤에 쉼표를 두는 것이 허용되지 않습니다. 예를 들어 {"a":1,} 이나 [1,2,] 는 무효합니다. 여분의 쉼표를 삭제해 주세요. JavaScript 객체에서는 끝 쉼표가 허용되지만 JSON에서는 허용되지 않으므로 코드에서 복사할 때 특히 주의해 주세요.
이것은 JSON의 Unicode 이스케이프 표기이며 그 자체로는 유효합니다. 포맷팅 후에도 정상적으로 파싱할 수 있습니다. 한글을 직접 표시하고 싶으면 생성 측에서 이스케이프하지 않도록 설정하세요(Python의 ensure_ascii=False, Go의 HTML 이스케이프 끄기 등).
JSON 숫자는 IEEE 754 배정밀도 부동소수점으로 파싱되므로 2^53을 초과하는 정수(스노우플레이크 ID, 주문번호 등)는 정밀도가 손실됩니다. 해결 방법은 전송 시 큰 정수를 문자열로 감싸는 것입니다. 즉 "id": "9007199254740993"과 같이 하여 숫자로 파싱되는 것을 피합니다.
'압축/Minify'로 전환하기만 하면 뷰티파이된 여러 줄 JSON을 다시 가장 컴팩트한 한 줄로 되돌릴 수 있어 API 전송, 설정에 쓰기, 코드에 삽입에 사용할 수 있습니다. 압축과 뷰티파이는 서로 역작업이며 데이터 내용은 변경되지 않습니다.