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: 네 — 키는 문자열이므로 같은 규칙입니다.
JSON 수리 가이드
토픽 허브
- JSON Parse Errors: Read the Message, Jump to the Fix
- Fix Invalid JSON: From 'What's Wrong' to a Clean File
- JSON Formatter, Validator, Viewer: Pick the Right Tool
- Repair LLM JSON Output: Handling Almost-JSON from AI
- Privacy: JSON Tools That Don't Leave Your Browser
- JSON Interop: YAML, CSV, XML, JWT, Schema
구체적인 가이드
- Base64 문자열 디코드 방법 (그리고 JWT 페이로드)
- URL 인코딩: 쿼리 파라미터 와 경로를 퍼센트 인코드하기
- YAML을 JSON으로 변환하기 (그리고 들여쓰기 오류 피하기)
- JSON을 CSV로 변환: 객체 배열을 펴기
- JSON을 XML로 변환: 루트, 속성, 배열
- JSON을 문자열 리터럴로 이스케이프하기 (그리고 이중 인코드된 JSON 디코드)
- JSON의 후행 쉼표 고치기
- JSON의 따옴표 없는 키 고치기
- LLM이 만든 JSON 고치기
- JSON 파싱 오류 “Expected Property Name” 고치기
- JSON vs JavaScript 객체 리터럴
- API 요청 전에 JSON 검증하기
- JSON 포맷터 vs JSON Repair
- JSON Unexpected Token 오류 고치기
- JSON에서 JavaScript 객체 변환기