JSON의 작은따옴표 고치기

JSON의 문자열과 객체 키는 큰따옴표를 사용해야 합니다. 작은따옴표 값은 JavaScript 스니펫, Python 스타일 출력, LLM 응답에서 자주 보입니다.

왜 작은따옴표가 안 되는가

엄격한 JSON은 큰따옴표 문자열만 받아들입니다. JavaScript 개발자에게는 익숙한 형태일지라도 파서는 {'name':'Ada'}를 거부합니다.

잘못된 예

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

수정된 JSON

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

작은따옴표 텍스트는 어디서 오는가

Python의 repr()과 dict 출력, 콘솔에서 복사한 JavaScript 객체 리터럴, Ruby의 hash inspect, 그리고 많은 LLM 응답은 모두 작은따옴표를 사용합니다. 그 어느 것도 JSON이 아닙니다 — 그저 비슷해 보이는 각 언어의 네이티브 리터럴일 뿐입니다.

왜 무작정 find-and-replace는 위험한가

'를 "로 무작정 바꾸면 { 'note': 'it\'s fine' }처럼 아포스트로피를 포함한 값이 깨집니다. 치환 후에 내부의 아포스트로피가 새 문자열 구분자와 충돌하기 때문입니다. 안전한 변환기는 따옴표 컨텍스트를 추적해 구분자만 바꾸고 내부 문자는 건드리지 않아야 합니다.

안전한 변환 전략

먼저 입력을 토큰화하세요: 텍스트를 훑으며 시작 따옴표로 문자열의 경계를 식별하고, 각 토큰을 큰따옴표로 재구성합니다 — 내부의 큰따옴표는 이스케이프하고, 불필요해진 이스케이프된 작은따옴표는 풉니다. 이 사이트의 수리 도구는 이를 한 번의 패스로 처리합니다.

관련된 JSON 구문 오류

작은따옴표가 섞인 JSON에는 같은 payload에 JavaScript식 죄가 더 같이 있는 경우가 많습니다: 따옴표 없는 키, 후행 콤마, 줄 주석, undefined 값. 따옴표를 고친 다음, 남아 있는 문제를 드러내기 위해 결과를 검증하세요.

FAQ

Q: 작은따옴표 문자열이 JSON5에서는 유효한가요? A: 네, JSON5는 허용합니다. Q: Python의 json.loads가 작은따옴표를 받나요? A: 아니요 — 소스가 정말 Python 리터럴이라면 ast.literal_eval을 쓰고, 그렇지 않다면 따옴표를 먼저 바꾸세요. Q: JSON 키도 큰따옴표가 필요한가요? A: 네 — 키는 문자열이므로 같은 규칙입니다.