JSON 데이터 다루는 법 - 파싱, 검증, 변환부터 실무 도구까지 한번에 정리
JSON의 기본 구조부터 자바스크립트와 파이썬 파싱, 자주 발생하는 오류 해결, 실무 변환 도구까지 입문자도 30분이면 익히는 실전 정리입니다.
![]()
API 문서를 처음 열어봤을 때 응답 예시에 가득한 중괄호와 대괄호가 낯설게 느껴진 경험이 있을 겁니다. 처음에는 복잡해 보이지만 규칙은 의외로 단순합니다. JSON 데이터 다루는 법을 한번 익혀두면 API 연동부터 설정 파일 관리, 프론트엔드와 백엔드 통신까지 작업 흐름이 훨씬 매끄러워집니다.
JSON이 표준이 된 이유
JSON은 JavaScript Object Notation의 약자입니다. 더글라스 크락포드가 2001년 무렵 정리하고 이후 RFC 8259, ECMA-404 표준으로 자리잡았습니다. 사람이 읽기 쉽고 기계가 파싱하기도 쉽다는 두 가지 장점을 모두 가지면서 현대 웹 API의 사실상 기본 응답 형식이 되었습니다.
XML과 비교하면 차이가 명확합니다. 동일한 정보를 표현할 때 JSON은 글자 수가 약 30% 이상 적습니다. 네트워크 트래픽이 줄고 파싱 속도도 더 빠릅니다.
| 항목 | JSON | XML | YAML |
|---|---|---|---|
| 가독성 | 높음 | 중간 | 매우 높음 |
| 파싱 속도 | 빠름 | 느림 | 중간 |
| 주석 지원 | 없음 | 있음 | 있음 |
| 데이터 타입 | 6종 | 문자열만 | 다양 |
| 웹 API 표준 | 대부분 | 일부 | 설정 파일 위주 |
JSON 데이터 다루는 법 - 기본 문법
JSON은 단 6가지 데이터 타입만 지원합니다. 문자열, 숫자, 불리언, 배열, 객체, null이 전부입니다. 이 조합만으로 거의 모든 데이터를 표현할 수 있습니다.
- 문자열: 반드시 큰따옴표로 감쌉니다. 작은따옴표는 허용되지 않습니다.
- 숫자: 따옴표 없이 작성합니다. 정수와 소수 모두 가능합니다.
- 불리언: true 또는 false. 소문자로만 작성합니다.
- null: 값이 없음을 의미합니다. None이나 nil은 불가합니다.
키 이름은 항상 큰따옴표로
객체의 키는 반드시 문자열이어야 하며 큰따옴표로 감싸야 합니다. 자바스크립트 객체 리터럴과 가장 큰 차이점입니다. 자바스크립트에서 { name: '홍길동' }은 유효하지만, JSON으로 저장할 때는 { "name": "홍길동" }으로 작성해야 합니다.
자바스크립트와 파이썬에서 파싱하기
JSON을 다루는 핵심은 파싱과 직렬화 두 단계입니다. 파싱은 문자열을 객체로 바꾸는 작업이고, 직렬화는 그 반대입니다.
자바스크립트
JSON.parse()와 JSON.stringify() 두 메서드가 전부입니다. 외부 라이브러리 없이 기본 제공됩니다. parse는 문자열을 객체로, stringify는 객체를 문자열로 변환합니다.
JSON.stringify()의 두 번째와 세 번째 인자를 활용하면 들여쓰기, 키 필터링, 특정 값 변환까지 한 번에 처리할 수 있습니다. 디버깅이나 로그 출력에서 자주 쓰는 패턴입니다.
파이썬
표준 라이브러리 json 모듈을 사용합니다. json.loads()는 문자열을 딕셔너리로, json.dumps()는 그 반대입니다. 파일 단위로 다룰 때는 json.load(), json.dump()를 사용합니다. ensure_ascii=False 옵션을 주지 않으면 한글이 유니코드 이스케이프 시퀀스로 변환되어 가독성이 크게 떨어집니다.
자주 만나는 JSON 오류와 해결법
JSON 파싱 에러는 대부분 작은따옴표 사용, 마지막 콤마, 닫히지 않은 괄호 세 가지에서 발생합니다. 메시지를 정확히 읽으면 위치를 빠르게 잡을 수 있습니다.
| 오류 메시지 | 원인 | 해결 |
|---|---|---|
| Unexpected token | 작은따옴표 사용 | 큰따옴표로 변경 |
| Unexpected end of JSON | 괄호가 닫히지 않음 | 중괄호/대괄호 짝 확인 |
| Trailing comma | 마지막 항목 뒤 콤마 | 마지막 콤마 제거 |
| NaN is not valid | NaN, Infinity 사용 | null로 대체 |
| Duplicate key | 같은 키를 두 번 사용 | 키 이름을 다르게 변경 |
실무에서 유용한 JSON 도구
매번 코드를 짜기 번거로울 때는 무료 웹 도구가 효율적입니다. 자주 쓰는 도구들을 정리하면 다음과 같습니다.
- JSONLint: 구문 검증과 오류 위치 표시에 가장 빠른 도구
- JSON Crack: 트리 구조로 시각화해서 구조 파악에 유용
- JSON to CSV 변환기: 엑셀에서 분석할 때 필요
- JSON Schema 검증기: API 응답이 명세대로 오는지 확인
- JQ: 명령줄에서 JSON을 필터링하고 가공하는 표준 도구
테스트용 더미 데이터가 필요할 때 일일이 만들기 번거롭다면 Lorem Ipsum 생성기로 텍스트 필드를 채워 넣은 뒤 JSON 형식으로 변환해 사용할 수 있습니다. API 목 데이터를 빠르게 만들 때 시간이 절약됩니다.
JSON 다루기 체크리스트
실무에서 JSON을 다룰 때 자주 놓치는 부분을 정리한 체크리스트입니다. 작업 전후로 한번씩 훑어보면 사소한 오류를 줄일 수 있습니다.
- 키와 문자열 값은 모두 큰따옴표로 감쌌는가
- 마지막 항목 뒤에 콤마가 남아 있지 않은가
- 중괄호와 대괄호의 짝이 모두 맞는가
- 한글 인코딩이 UTF-8로 저장되었는가
- 큰 파일은 스트리밍 파서 사용을 검토했는가
- 외부 입력 JSON은 try-catch로 감쌌는가
JSON 다루는 법은 한 번 손에 익히면 평생 쓰는 기본기가 됩니다. 작은 파일을 직접 파싱해보고 일부러 오류를 내본 뒤 메시지를 읽어보는 연습부터 시작하면 빠르게 익숙해집니다.