배열은 순서 있고, 대괄호로 감싸고, 콤마로 구분
배열은 [ 와 ] 사용. 순서가 유의미 (객체 키와 다름). 요소가 6 타입 어느 것이든 가능, 같은 타입 아니어도 됨 — JSON 배열은 spec 상 이종, 대부분 API 가 동종으로 쓰지만.
Trailing-comma 함정
JSON 은 마지막 요소 뒤 trailing comma 허용 안 함. [1, 2, 3,] 는 파스 에러. 가장 흔한 JSON 문법 버그 — Python, JavaScript, Rust, Go 다 native literal 문법에서 trailing comma 허용해서 근육 기억이 계속 무는 거야.
빈 배열 vs null vs 누락 키
다른 세 상태: "items": [] = '리스트 알고 있음, 비어있음'. "items": null = '아직 모름'. items 완전 생략 = '이 개념이 적용 안 됨'. 이걸 혼동하는 API 는 오후 디버깅 만들어.
원칙: 배열은 순서 운반; 객체는 이름 운반. 데이터가 자연스럽게 순서 있으면 (단계, log entry, 검색 결과) 배열 써. 자연스럽게 이름으로 주소 가능하면 (설정, 필드, 속성) 객체 써. 순서 있는 데이터를 객체로 저장해서 키 insertion 순서에 의존하지 마.