JSON 파싱 오류 “Expected Property Name” 고치기

보통 이 오류는 파서가 유효한 JSON이 아닌 객체 키(따옴표 없는 키, 주석, 후행 쉼표, 엄격한 JSON 안의 JavaScript 문법)에 도달했다는 뜻입니다.

이 오류의 의미

JSON 객체 멤버는 항상 큰따옴표 친 속성 이름으로 시작해야 합니다. 파서가 expected property name 또는 expected property name or '}'라고 말할 때는 보통 여는 중괄호나 콤마 직후에 서서 "name" 같은 키를 기다리고 있습니다. name, // 주석, /* 주석 */, 또는 후행 콤마 뒤의 닫는 괄호를 보면 멈춥니다 — 이런 패턴은 JavaScript의 것이지 엄격한 JSON의 것이 아닙니다.

가장 흔한 원인

이 오류를 디버깅하는 가장 빠른 방법은 보고된 행과 열의 문자를 보고, 한 토큰 앞을 살펴보는 것입니다. 대부분의 신고는 다음 네 가지 작은 실수 중 하나에서 옵니다.

  • 따옴표 없는 객체 키, 예: { name: "Ada" }
  • 작은따옴표 키나 문자열, 예: { 'name': 'Ada' }
  • JavaScript나 JSONC 파일에서 복사된 주석
  • } 또는 ] 앞의 후행 콤마

잘못된 예

{ name: 'Ada', active: true, // copied from a JS object }

수정된 JSON

{ "name": "Ada", "active": true }

수리 체크리스트

모든 키에 큰따옴표를 두고, 작은따옴표 문자열을 큰따옴표 문자열로 바꾸고, 주석을 제거하고, 후행 콤마를 없애며, 불리언과 null이 소문자인지 확인하세요. 수리 후에는 설정 파일에 저장하거나 API로 보내거나 DB 마이그레이션에 붙여 넣기 전에 엄격한 검증을 한 번 더 실행하세요.

자동 수리가 안전한 경우

의도가 명확한 구문 정리라면 자동 수리는 안전합니다. 그것을 업무 검증과 혼동하지 마세요. 키 이름, 숫자, 날짜, 열거값이 모호할 수 있다면 구문만 고친 다음, 수리 출력을 소스 시스템이나 API 스키마와 비교하세요.