
JSON(JavaScript Object Notation)은 데이터를 저장하거나 전송할 때 사용하는 경량 데이터 포맷입니다.
자바스크립트 객체 표기법에서 파생되었지만, 현재는 특정 언어에 종속되지 않는 독립적인 데이터 표준으로 자리 잡았습니다.
JSON은 Key - Value 구조를 기반입니다.
") 사용,)로 구분, 마지막 요소 뒤에는 쉼표 ❌| 자료형 | 설명 | 예시 |
|---|---|---|
| String | 유니코드 문자열 | "name": "Velog" |
| Number | 정수 또는 실수 | "age": 25, "score": 95.5 |
| Object | 중괄호 {}로 감싸진 구조 | "address": {"city": "Seoul"} |
| Array | 대괄호 []로 감싸진 목록 | "skills": ["Java", "JS"] |
| Boolean | true / false | "isActive": true |
| null | 값 없음 | "token": null |
Java 환경에서 JSON ↔ 객체 변환 시 사용하는 어노테이션 정리
@JsonProperty("name")
👉 JSON key와 Java 필드명이 다를 때 매핑
@JsonIgnore
👉 특정 필드를 JSON 변환 대상에서 제외
@JsonInclude(JsonInclude.Include.NON_NULL)
👉 null 값 필드는 JSON에서 제외
@JsonFormat(pattern = "yyyy-MM-dd")
👉 날짜/시간 포맷 지정
@JsonIgnoreProperties(ignoreUnknown = true)
👉 JSON에 있지만 객체에 없는 필드 무시
| 구분 | JSON | XML | YAML |
|---|---|---|---|
| 가독성 | 높음 | 보통 (태그 기반) | 매우 높음 (들여쓰기) |
| 용도 | 웹 API 데이터 전송 | 문서 구조 정의 | 설정 파일 |
| 데이터 크기 | 작음 | 큼 (닫기 태그) | 가장 작음 |
| 주석 지원 | ❌ | ⭕ | ⭕ |