惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Jina AI
Jina AI
C
Check Point Blog
V
V2EX
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
A
About on SuperTechFans
D
DataBreaches.Net
腾讯CDC
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
IT之家
IT之家
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
博客园_首页
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
5 Ways ChatGPT Breaks Your JSON (And How to Fix Each One)
AI JSONMedic · 2026-05-20 · via DEV Community

If you've ever asked ChatGPT to return JSON, you've probably seen this error:

SyntaxError: Unexpected token

Enter fullscreen mode Exit fullscreen mode

ChatGPT and GPT-4o are great at generating almost valid JSON — close enough for a human to read, but broken enough to crash JSON.parse(). After repairing thousands of broken JSON documents, here are the 5 most common ways ChatGPT breaks your JSON, with fixes for each.


1. Markdown Code Fence Wrapping

The problem: You ask for JSON. ChatGPT wraps it in markdown:

Here is the JSON you requested:

\`\`\`json
{"name": "Alice", "role": "engineer"}
\`\`\`

Enter fullscreen mode Exit fullscreen mode

The fix: Strip everything before the first { and after the last }:

const raw = chatgptResponse;
const start = raw.indexOf('{');
const end = raw.lastIndexOf('}');
const clean = raw.slice(start, end + 1);
JSON.parse(clean);

Enter fullscreen mode Exit fullscreen mode


2. Trailing Commas

The problem: ChatGPT adds trailing commas after the last array/object item:

{"items": ["apple", "banana", "cherry",]}

Enter fullscreen mode Exit fullscreen mode

This is valid JavaScript but illegal in strict JSON.

The fix:

cleaned = json.replace(/,(\s*[}\]])/g, '$1');

Enter fullscreen mode Exit fullscreen mode


3. Python Booleans

The problem: ChatGPT sometimes outputs Python-style booleans:

{"active": True, "deleted": False, "metadata": None}

Enter fullscreen mode Exit fullscreen mode

The fix:

cleaned = cleaned
  .replace(/\bTrue\b/g, 'true')
  .replace(/\bFalse\b/g, 'false')
  .replace(/\bNone\b/g, 'null');

Enter fullscreen mode Exit fullscreen mode


4. JavaScript Comments

The problem: ChatGPT adds helpful comments that break JSON:

{
  // User profile
  "id": 42,
  "name": "Alice" /* primary user */
}

Enter fullscreen mode Exit fullscreen mode

The fix: Strip both line and block comments (careful not to touch strings):

// Simple version (doesn't handle comments inside strings)
cleaned = cleaned
  .replace(/\/\/.*$/gm, '')
  .replace(/\/\*[\s\S]*?\*\//g, '');

Enter fullscreen mode Exit fullscreen mode


5. Truncated Responses

The problem: When ChatGPT hits its token limit, JSON gets cut off mid-stream:

{"users": [{"id": 1, "name": "Alice"}, {"id": 2, "na

Enter fullscreen mode Exit fullscreen mode

The fix: This one is hard to fix with regex. You need to close unclosed strings, arrays, and objects. A robust approach:

// Close unclosed structures
let depth = { brace: 0, bracket: 0, inString: false };
// ... (requires a state machine parser)

Enter fullscreen mode Exit fullscreen mode


The Easy Way: Use a JSON Fixer

Writing all these cleanup rules yourself is tedious and error-prone. I built AI JSONMedic — a free online tool that handles all 5 of these cases (and more) in one click.

Just paste the raw ChatGPT output — markdown wrappers, Python booleans, comments, and all — and get clean, valid JSON back instantly. It runs entirely in your browser, so your data never leaves your device.

Try it free: aijsonmedic.com


TL;DR

Error Cause Quick Fix
Markdown wrapping ChatGPT adds code fences Strip before first {
Trailing commas JS habit, illegal in JSON Regex remove
Python booleans True/False/None Replace with true/false/null
Comments Helpful but illegal Strip // and /* */
Truncation Token limit hit Close unclosed structures

Have you run into other ChatGPT JSON bugs? Drop them in the comments!