JSON이란: 5분 만에 읽는 기본 문법
개발자에게 “API 응답 좀 봐 주세요”라는 말을 듣고 열어 봤더니 중괄호와 따옴표가 빼곡한 외계어가 나온 적 있으신가요? 그게 바로 JSON입니다. 생김새는 낯설지만 규칙은 딱 몇 가지뿐이라, 한 번만 읽어 두면 다음부터는 눈에 들어옵니다. 이 글은 JSON이 어디에 쓰이고, 무엇으로 이루어져 있고, 무엇을 하면 안 되는지를 5분 분량으로 정리합니다.
최종 업데이트: 2026년 7월
1. JSON은 어디에 쓰일까
JSON(제이슨)은 데이터를 글자로 적는 약속입니다. 프로그램끼리 데이터를 주고받으려면 양쪽이 같은 형식을 써야 하는데, 그 표준 역할을 JSON이 하고 있습니다. 실제로 마주치는 곳은 크게 세 군데입니다.
- API 응답: 앱이나 웹사이트가 서버에 “회원 정보 주세요”라고 요청하면, 서버는 대부분 JSON으로 답합니다. 브라우저 개발자 도구나 로그에서 보는 한 줄짜리 데이터가 바로 이것입니다.
- 설정 파일: 프로그램의 옵션을 적어 두는 파일에도 널리 쓰입니다. package.json, tsconfig.json처럼 파일 이름이 아예 .json으로 끝나는 경우가 많습니다.
- 데이터 교환·내보내기: 서비스에서 데이터를 내려받거나 다른 시스템으로 옮길 때의 중간 형식으로도 자주 선택됩니다. 사람이 읽을 수 있는 글자라서 무슨 데이터인지 눈으로 확인할 수 있다는 게 큰 장점입니다.
2. 값은 딱 여섯 종류
JSON에 들어갈 수 있는 값은 여섯 가지가 전부입니다. 이 여섯 개만 알면 어떤 JSON이든 읽을 수 있습니다.
{
"name": "홍길동",
"age": 34,
"isMember": true,
"nickname": null,
"hobbies": ["등산", "요리"],
"address": { "city": "서울", "zip": "04524" }
}
- 문자열: 큰따옴표로 감싼 글자.
"홍길동" - 숫자: 따옴표 없이 적는 수.
34,3.14,-7 - 불리언: 참/거짓 딱 두 값.
true또는false - null: “값이 없음”을 나타내는 표시.
null - 배열: 대괄호
[ ]로 감싼 목록. 순서가 의미를 가집니다. - 객체: 중괄호
{ }로 감싼 “키: 값” 묶음. JSON 문서 전체도 보통 객체 하나입니다.
배열 안에 객체가 들어가고, 객체 안에 또 배열이 들어가는 식으로 얼마든지 겹쳐 쌓을 수 있습니다. 복잡해 보이는 JSON도 결국 이 여섯 가지의 조합입니다.
3. 꼭 지켜야 하는 문법 규칙
JSON은 형식이 엄격합니다. 사람 눈에는 사소해 보이는 차이도 프로그램은 오류로 처리합니다. 특히 자주 걸리는 세 가지가 있습니다.
- 키는 반드시 큰따옴표:
{name: "홍길동"}은 안 되고{"name": "홍길동"}이어야 합니다. 작은따옴표(')도 안 됩니다. - 마지막 쉼표 금지: 마지막 항목 뒤에 쉼표를 남기면
(
{"a": 1,}) 오류입니다. 항목을 지우다가 쉼표만 남는 경우가 정말 흔합니다. - 주석 불가:
// 메모나/* 설명 */같은 주석은 JSON에 존재하지 않습니다. 설명을 남기고 싶으면"_comment"같은 키를 하나 만들어 값으로 적는 우회법을 쓰기도 합니다.
규칙이 헷갈리면 외우기보다 검사가 빠릅니다. JSON 포맷터·검증기에 붙여넣으면 문법이 맞는지 즉시 확인하고, 틀렸다면 몇 번째 줄 몇 번째 칸이 문제인지까지 짚어줍니다.
4. 자바스크립트 객체와 뭐가 다를까
JSON은 자바스크립트의 객체 표기법에서 출발했기 때문에 생김새가 거의 같습니다. 그래서 “자바스크립트에서는 되는데 왜 JSON에서는 안 되지?”라는 혼란이 생깁니다. 핵심 차이는 이렇습니다.
- 자바스크립트 객체는 프로그램 코드의 일부이고, JSON은 순수한 데이터 텍스트입니다. 코드가 아니라서 계산식이나 함수를 넣을 수 없습니다.
- 자바스크립트에서는 키에 따옴표를 생략하고, 작은따옴표를 쓰고, 마지막 쉼표를 남기고, 주석을 달아도 됩니다. JSON에서는 전부 오류입니다.
- 자바스크립트에는
undefined,NaN같은 특수 값이 있지만 JSON에는 없습니다. “값 없음”은null하나뿐입니다.
요약하면 JSON은 자바스크립트 객체 문법의 깐깐한 부분집합입니다. 코드에서 복사해 온 객체가 JSON 검사에서 우수수 오류를 내는 이유가 여기에 있습니다.
5. 비개발자도 JSON을 만나는 순간
JSON은 이제 개발자만의 것이 아닙니다. 이런 상황이라면 기획자나 마케터도 JSON을 직접 읽거나 만지게 됩니다.
- API 문서 검토: 외부 서비스 연동을 검토할 때 문서의 요청·응답 예시가 전부 JSON으로 적혀 있습니다. 여섯 가지 타입만 알면 어떤 데이터가 오가는지 읽을 수 있습니다.
- 광고·분석 도구 설정: GTM 컨테이너 내보내기, 광고 플랫폼의 대량 업로드, 챗봇 시나리오 설정처럼 마케팅 도구가 JSON 파일을 요구하는 경우가 늘고 있습니다.
- 구조화 데이터(SEO): 검색 노출을 위해 페이지에 넣는 schema.org 마크업이 JSON-LD라는 JSON 형식입니다. 쉼표 하나 틀리면 검색엔진이 통째로 무시합니다.
- 개발자와의 소통: “응답에서 이 필드가 null로 와요”처럼 데이터로 대화할 때, JSON을 읽을 줄 알면 이슈 전달이 훨씬 정확해집니다.
지금 손에 있는 JSON이 문법에 맞는지 궁금하다면 붙여넣어 보세요. 정리와 검사가 브라우저 안에서 바로 됩니다.
JSON 포맷터·검증기 열기6. 자주 묻는 질문
JSON은 무엇의 줄임말인가요?
JavaScript Object Notation, 즉 “자바스크립트 객체 표기법”의 줄임말입니다. 이름에 자바스크립트가 들어 있지만 지금은 특정 언어와 무관하게, 거의 모든 프로그래밍 언어와 서비스가 지원하는 범용 데이터 형식으로 쓰입니다.
JSON 파일은 무엇으로 열어 보나요?
순수한 텍스트라서 메모장 같은 아무 텍스트 편집기로도 열립니다. 다만 한 줄로 붙어 있으면 읽기 어려우니, JSON 포맷터에 붙여넣어 들여쓰기를 맞춘 뒤 보는 편이 훨씬 편합니다.
키 순서는 의미가 있나요?
객체의 키 순서는 JSON 표준에서 의미가 없습니다. {"a":1,"b":2}와
{"b":2,"a":1}은 같은 데이터입니다. 반면 배열은 순서 자체가 데이터라서,
순서가 바뀌면 다른 값이 됩니다.
엑셀이나 CSV와는 뭐가 다른가요?
CSV는 표처럼 행과 열이 고정된 납작한 형식이고, JSON은 목록 안에 묶음이 들어가는 식으로 구조를 겹쳐 담을 수 있습니다. 회원 한 명이 주소 여러 개를 가지는 것 같은 데이터는 CSV로는 표현이 옹색하지만 JSON으로는 자연스럽게 담깁니다.