Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@toolsycc/json-repair

sebog33366MIT0.1.22TypeScript support: included

A robust utility to repair JSON strings - fix malformed or broken JSON, especially from LLM output like ChatGPT.

toolsy, json, repair, json repair, repair json, fix json, json fixer, fix broken json, fix malformed json, llm json, validate, check, fix, parser, malformed, invalid, broken, llm, ia, ai, chatgpt, gpt, openai, anthropic, claude, llama, deepseek, mistral, gemini, groq, qwen, grok, xai, o1, o3

readme

@toolsycc/json-repair

A small but powerful utility to repair broken JSON strings — especially useful when dealing with LLM output or hand-written JSON.
Need to repair JSON? This tool automatically fixes malformed or broken JSON structures with a single function call. ✅ Works seamlessly with both TypeScript and JavaScript (ESM & CommonJS).

Features

  • Fixes:
    • Unquoted keys
    • Unquoted string values
    • Trailing commas
    • Invalid literals (NaN, undefined, Infinity)
    • Capitalized literals (True, False, Null)
    • Single quotes
    • Missing closing braces
    • Misplaced quotes inside strings
    • LLM code blocks (e.g. json ...)
    • LLM JSON extraction (e.g. The result is: {...})
  • Option to return a string or JS object
  • ASCII escaping (e.g. CaféCaf\u00e9)
  • Safe fallback mode

Install

pnpm add @toolsycc/json-repair

Or with npm:

npm install @toolsycc/json-repair

Example usage

🟦 TypeScript

import { repairJson } from '@toolsycc/json-repair';

const input = `{name: Seb, age: 42,}`;
const repaired = repairJson(input);
console.log(repaired);
// → {"name":"Seb","age":42}

🟨 JavaScript (CommonJS)

const { repairJson } = require('@toolsycc/json-repair');

console.log(repairJson('{name: Seb, age: 42,}'));

🟩 JavaScript (ESM)

import { repairJson } from '@toolsycc/json-repair';

console.log(repairJson('{name: Seb, age: 42,}'));

Options

Option Type Default Description
extractJson boolean false Extracts the first JSON block from surrounding text (useful for LLM output)
encodeAscii boolean false Escapes non-ASCII characters (é\u00e9)
returnObject boolean false If true, returns a JS object instead of a JSON string
logging boolean false Enables console logs of each transformation step
safeMode boolean false If true, throws a friendly error instead of crashing on unrecoverable input

Examples

Input Output
{name: Seb} {"name":"Seb"}
{user: {name: Seb, age: 30}} {"user":{"name":"Seb","age":30}}
{value: NaN} {"value":null}
'{"text": "Café"}' + encodeAscii: true {"text":"Caf\u00e9"}
Hello!\n\n\\\\\json\n{name: Seb}` {"name":"Seb"}

Live demonstration

Try it: Toolsy

Motivation

This package was designed to help deal with malformed JSON, especially the kind you get from LLMs like ChatGPT and OpenAI APIs when asking for json output. This package is ideal if you're looking to repair JSON, fix malformed JSON, or sanitize AI-generated output. It can also be used to quickly recover and parse broken logs or hand-crafted config files.

Author

Made by @Sebog33
Follow Toolsy for more tiny dev-focused utilities.

License

MIT