2026. 03. 14
JSON 포맷터 — API 응답을 읽고 오류를 찾는 방법
JSON 문법의 기본 구조와 자주 나는 쉼표, 따옴표, 배열 오류를 설명합니다. API 응답을 보기 좋게 정리하고 유효성 검사를 통과시키는 실무 순서까지 정리했습니다.
API 응답을 복사했는데 한 줄로 길게 붙어 있으면 어디가 문제인지 보기 어렵습니다. 특히 중괄호가 여러 겹이면 쉼표 하나 빠진 오류를 찾는 데 시간이 오래 걸립니다.
JSON은 프로그램끼리 데이터를 주고받을 때 쓰는 텍스트 형식입니다. "키(항목 이름)"와 "값"의 쌍으로 이루어지고, 객체는 { }, 배열(값의 목록)은 [ ], 문자열은 큰따옴표로 감쌉니다. 사람이 쓰기에도 단순하고 JavaScript, Python, PHP, Java 같은 언어에서 쉽게 읽을 수 있어 API 응답 형식으로 널리 쓰입니다. 포맷터는 한 줄로 뭉친 JSON에 줄바꿈과 들여쓰기를 넣어 읽기 좋게 정리하는 도구입니다.
도구에서 직접 정리해 보기
JSON 포맷터 페이지에서 순서대로 해 보세요.
- 큰 입력칸에 한 줄짜리 JSON을 붙여 넣습니다. 연습용으로
{"name":"홍길동","age":45,"cart":["노트북","마우스"]}를 그대로 복사해 넣어도 됩니다. - "Beautify JSON" 버튼을 누릅니다.
- 아래 "Beautified JSON" 칸에 들여쓰기가 적용된 결과가 나옵니다. "Copy" 버튼으로 복사할 수 있습니다.
{
"name": "홍길동",
"age": 45,
"cart": [
"노트북",
"마우스"
]
}
입력칸 아래 Format Options에서 동작을 바꿀 수 있습니다. "Sort Object Keys"를 체크하면 키가 알파벳순으로 정렬되고, "Validate Only"를 체크하면 정리 없이 문법 검사만 합니다. 결과에서 한글이 홍 같은 코드로 나온다면 "Unescape Unicode Characters"가 체크되어 있는지 확인하세요. 기본으로 켜져 있어서 보통은 한글이 그대로 보입니다.
문법이 틀린 JSON을 넣으면 빨간 오류 상자가 뜨고 결과가 나오지 않습니다. 이때는 JSON 유효성 검사 도구에 같은 내용을 붙여 넣고 "Validate JSON"을 눌러 보세요. 맞으면 초록색으로 "JSON is Valid", 틀리면 빨간색으로 "Invalid JSON Provided:" 메시지가 나옵니다. 포맷터는 읽기 좋게 정리하는 도구이고, 유효성 검사는 문법 오류를 잡는 도구입니다.
JSON의 기본 규칙
아래 예시는 정상 JSON입니다.
{
"name": "Tooly",
"active": true,
"tools": ["json-beautifier", "json-validator"],
"count": 2
}
키는 반드시 큰따옴표로 감싸야 합니다. 작은따옴표는 JSON 표준에서 문자열 따옴표가 아닙니다. 마지막 항목 뒤에 쉼표를 붙이는 것도 오류입니다.
자주 나는 오류
| 오류 | 잘못된 예 | 고치는 법 |
|---|---|---|
| 작은따옴표 | 'name': 'Tooly' |
"name": "Tooly" |
| 마지막 쉼표 | "count": 2, |
마지막 항목 쉼표 제거 |
| 주석 사용 | // 설명 |
JSON에는 주석 불가 |
| 키 따옴표 없음 | name: "Tooly" |
"name": "Tooly" |
| 괄호 불일치 | { "a": [1, 2 } |
여는 괄호와 닫는 괄호 짝 맞추기 |
초보가 자주 막히는 지점
프로그램 코드에서 출력한 데이터를 그대로 붙여 넣고 오류가 나는 경우가 많습니다. 예를 들어 Python이 화면에 찍어 주는 {'name': '홍길동', 'ok': True}는 JSON처럼 보이지만 작은따옴표와 대문자 True 때문에 유효한 JSON이 아닙니다. 따옴표를 큰따옴표로, True를 소문자 true로 바꿔야 통과합니다.
멀쩡해 보이는데 계속 오류가 난다면 마지막 항목 뒤의 쉼표부터 의심하세요. "age": 45,} 처럼 닫는 괄호 바로 앞의 쉼표 하나가 전체를 무효로 만듭니다. 이런 오류는 눈으로 찾기 어려워서 유효성 검사 도구를 먼저 돌리는 편이 빠릅니다.
API 디버깅에서 보는 순서
먼저 응답 전체를 포맷터에 붙여 넣어 구조를 펼칩니다. 그다음 필요한 값이 어느 경로에 있는지 봅니다. 예를 들어 data.items[0].price처럼 객체와 배열 위치를 확인해야 프론트엔드 코드에서 정확히 꺼낼 수 있습니다.
한국 서비스 연동에서도 JSON은 자주 등장합니다. 카카오, 네이버, 토스, 결제대행사 API 문서를 보면 요청과 응답 예시가 대부분 JSON입니다. 한글 값은 UTF-8로 다루면 문제없지만, 서버 설정이 맞지 않으면 한글이 깨져 보일 수 있습니다.
JSON과 보안
JSON이 문법상 맞다고 해서 내용이 안전한 것은 아닙니다. 외부에서 받은 JSON 값을 HTML에 바로 넣으면 XSS 문제가 생길 수 있습니다. 유효성 검사는 구조를 확인하는 단계이고, 실제 사용 전에는 값의 길이, 타입, 허용 범위를 서버에서 다시 검사해야 합니다.
또 하나, 실제 서비스의 API 응답에는 인증 토큰이나 회원 정보가 섞여 있을 수 있습니다. 어떤 온라인 도구를 쓰든, 민감한 값이 든 응답이라면 해당 부분을 지우거나 가린 뒤 붙여 넣는 습관이 안전합니다.
자주 묻는 질문
JSON에 설명(주석)을 넣고 싶으면 어떻게 하나요
표준 JSON은 주석을 허용하지 않습니다. 설명이 꼭 필요하면 "_comment": "설명"처럼 별도 키를 만들어 넣는 방법을 씁니다. 다만 받는 쪽 프로그램이 그 키를 무시하도록 되어 있어야 합니다.
포맷터와 유효성 검사, 뭘 먼저 쓰나요
오류가 의심되면 유효성 검사부터, 구조 파악이 목적이면 포맷터부터 쓰면 됩니다. 포맷터도 문법이 틀리면 오류를 알려 주므로, 결과가 안 나올 때 유효성 검사로 넘어가는 순서가 자연스럽습니다.
숫자를 01처럼 쓰면 왜 오류인가요
JSON 표준에서 숫자는 0으로 시작할 수 없습니다. "code": 01은 오류이고, 앞자리 0을 살려야 한다면 "code": "01"처럼 문자열로 감싸야 합니다. 전화번호, 우편번호처럼 0으로 시작하는 값은 문자열로 다루는 것이 원칙입니다.