jsonrepair
Repair invalid or broken JSON documents — missing quotes, trailing commas, truncation, and more
Repository Health
Technical Analysis
jsonrepair parses malformed JSON and rewrites it into valid JSON, fixing common problems like missing quotes around keys, trailing commas, unescaped characters, truncated documents, single-quote strings, JS-style comments, JSONP wrappers, and newline-delimited JSON. It is commonly used to salvage output from LLMs (which frequently emit near-valid JSON), scraped web data, and legacy configuration files that aren’t strictly spec-compliant.
The library ships as ESM, CommonJS, and UMD builds, includes a small CLI (jsonrepair), and provides a streaming API for handling documents too large to hold in memory. It has no runtime dependencies, keeping the installed footprint minimal for use in both Node.js and browser contexts.
What You Get
- A
jsonrepair()function that accepts a malformed JSON string and returns a repaired, valid JSON string - A streaming API (
jsonrepairTransform) for repairing JSON incrementally without loading the whole document into memory - A CLI (
jsonrepaircommand) for repairing JSON files from the shell or piping through stdin/stdout - ESM, CommonJS, and browser UMD builds with zero runtime dependencies
- A broad, documented catalog of specific repair rules (missing commas/brackets, smart quotes, Python constants, MongoDB types, string concatenation, and more)
Common Use Cases
- Cleaning up JSON emitted by LLMs, which often omit quotes, add trailing commas, or wrap output in markdown code fences
- Recovering usable data from truncated JSON responses (e.g. a network request cut off mid-stream)
- Parsing relaxed or legacy config files that use JS-style object literals instead of strict JSON
- Ingesting scraped or hand-edited JSON/JSONP data that doesn’t validate against a strict parser
Under The Hood
Architecture: The core repair logic lives in src/streaming/core.ts, a hand-written character-by-character parser/rewriter that walks the input tracking a stack.ts-based nesting stack of objects/arrays, emitting corrected output as it goes rather than building an AST and re-serializing; src/regular/jsonrepair.ts wraps this core into a simple synchronous string-in/string-out function, while src/streaming/stream.ts exposes the same core through a Node transform stream for large inputs, and src/streaming/buffer holds buffering helpers shared by both paths. Tech Stack: Pure TypeScript with zero runtime dependencies, built to ESM/CommonJS/UMD via a Babel-based build pipeline (babel.config.json/babel-cjs.config.json), linted and formatted with Biome, and tested with Vitest. Code Quality: Repair behavior is covered by co-located *.test.ts files next to the modules they test (core.test.ts, stream.test.ts, index.test.ts) exercising the repair rule catalog against specific malformed-JSON fixtures; the single-file core parser trades some modularity for a tight, auditable implementation of a well-scoped problem. API Design: The public surface is deliberately minimal — one jsonrepair() function for the common case, a parallel streaming entry point for large documents, and a thin CLI wrapper — so integrating repair into an existing JSON.parse call site requires only a single import and function call.
Used by 21 apps in this directory
Sentry
Analytics · Developer Tools · Monitoring
Developer-first error tracking and performance monitoring platform with AI-powered root-cause analysis across 20+ languages and frameworks.
Supabase
Authentication · Databases · Developer Tools
The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.
ToolJet
AI Agents · Low Code Platforms · No Code Platforms
Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.