LLM이 만든 JSON 고치기
AI 응답은 JSON처럼 보여도 마크다운 펜스, 주석, Python 스타일 리터럴, JavaScript 객체 문법이 섞여 있을 때가 많습니다.
LLM JSON에서 흔한 문제
Markdown 코드 펜스, 주석, 작은따옴표, 따옴표 없는 키, 후행 콤마, Python의 True/False/None 값은 모두 잘 쓴 AI 응답도 엄격한 JSON 파싱에서 실패하게 만들 수 있습니다.
수리 흐름
응답을 JSON Fix에 붙여 넣고 Repair & Format을 실행한 뒤 Validate로 출력이 엄격한 JSON임을 확인하고, 그런 다음에야 코드나 API 요청에서 사용하세요.
프라이버시 메모
수리는 브라우저에서 로컬로 일어나므로, 내부 예시나 비공개 API payload가 포함된 프롬프트를 디버깅할 때 안심하고 쓸 수 있습니다.
도구와 레시피
브라우저 정리용으로는 LLM 출력을 JSON Fix에 붙여 넣고 Repair & Format을 누르세요 — 한 번에 markdown 코드 펜스(```json ... ```), 후행 콤마, Python 리터럴(True/False/None)을 제거합니다. Node에서는 npm 패키지 jsonrepair가 종속성 없이 같은 일을 합니다.
수리량을 줄이는 프롬프트
출력을 제약하세요: 「JSON 객체 하나만 응답하고, markdown 펜스나 설명은 넣지 마세요.」 모델이 지원한다면 JSON 모드 또는 response_format json_object를 사용하세요 — 그러면 구조적으로 펜스와 산문이 사라집니다. 프롬프트의 스키마(또는 function calling)는 발명된 키도 더 줄여 줍니다.
LLM에서 JSON 스트리밍
토큰이 스트리밍되는 동안 JSON은 정의상 유효하지 않습니다 — 아직 닫는 괄호가 없습니다. 응답이 끝날 때까지 버퍼링하고 한 번에 파싱하거나, jsonrepair, partial-json 같은 스트리밍 친화적 파서로 가장 유효한 접두 부분을 받아 점진적으로 렌더링하세요.
수리 대신 큰 소리로 실패해야 할 때
JSON이 금융 거래, 권한 변경, 파괴적 동작을 유발한다면 조용히 수리하지 마세요 — 응답을 거부하고 재시도하거나, 원본 출력을 검토에 노출하세요. 수리는 표시・디버깅・복구에 적합하고, 사람의 검토 없이 상태를 바꾸는 입력에는 절대 쓰지 마세요.
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의 작은따옴표 고치기
- JSON의 따옴표 없는 키 고치기
- JSON 파싱 오류 “Expected Property Name” 고치기
- JSON vs JavaScript 객체 리터럴
- API 요청 전에 JSON 검증하기
- JSON 포맷터 vs JSON Repair
- JSON Unexpected Token 오류 고치기
- JSON에서 JavaScript 객체 변환기