New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

ai-json-fixer

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ai-json-fixer

A simple JSON parser designed to handle malformed JSON from Large Language Models

latest
Source
npmnpm
Version
0.2.0
Version published
Weekly downloads
1K
-0.68%
Maintainers
1
Weekly downloads
 
Created
Source

ai-json-fixer

A simple JSON parser specifically designed to handle malformed JSON output from Large Language Models (LLMs) like GPT, Claude, and others.

Features

Core

  • Markdown Block Extraction: Extracts JSON from ```json code blocks and inline code
  • Trailing Content Removal: Removes explanatory text after valid JSON structures
  • Quote Fixing: Fixes unescaped quotes inside JSON strings
  • Missing Comma Detection: Adds missing commas between array elements and object properties
    • Single-line JSON support for compact LLM outputs like {"a": 1 "b": 2} and [1 2 3]
    • Multi-line JSON support for formatted outputs

Key Benefits

  • Zero Dependencies: Pure TypeScript/JavaScript implementation
  • Comprehensive Testing: 86+ tests covering real LLM output patterns
  • TypeScript Support: Full type definitions included
  • Configurable: Multiple parsing modes and options
  • Error Recovery: Graceful handling of malformed input

Installation

npm install ai-json-fixer

Quick Start

import { LLMJSONParser } from 'ai-json-fixer';

const parser = new LLMJSONParser();

// Parse JSON from LLM output with markdown
const llmOutput = `Here's the data you requested:

\`\`\`json
{
  "users": [
    {"name": "Alice", "age": 30},
    {"name": "Bob", "age": 25}
  ],
  "total": 2
}
\`\`\`

This JSON contains the user information.`;

const result = parser.parse(llmOutput);
console.log(result);
// Output: { users: [...], total: 2 }

Common Use Cases

Extract from Markdown

const input = `\`\`\`json\n{"key": "value"}\n\`\`\``;
const result = parser.parse(input); // { key: "value" }

Fix Quote Issues

const input = '{"message": "He said "hello" to me"}';
const result = parser.parse(input); // { message: 'He said "hello" to me' }

Remove Trailing Content

const input = '{"status": "ok"} The request was successful.';
const result = parser.parse(input); // { status: "ok" }

Handle Missing Commas

Multi-line JSON:

const input = `{
  "name": "John"
  "age": 30
}`;
const result = parser.parse(input); // { name: "John", age: 30 }

Single-line JSON:

// Objects
const input1 = '{"a": 1 "b": 2 "c": 3}';
const result1 = parser.parse(input1); // { a: 1, b: 2, c: 3 }

// Arrays
const input2 = '[1 2 3 4 5]';
const result2 = parser.parse(input2); // [1, 2, 3, 4, 5]

// Complex structures
const input3 = '[{"id": 1} {"id": 2}]';
const result3 = parser.parse(input3); // [{ id: 1 }, { id: 2 }]

API Reference

LLMJSONParser

parse<T>(input: string, options?: ParseOptions): T | null

Parse JSON input with automatic fixing. Returns parsed object or null if parsing fails.

tryParse<T>(input: string, options?: ParseOptions): ParseResult<T>

Parse with detailed results including applied fixes and confidence score.

Options

interface ParseOptions {
  mode?: 'strict' | 'standard' | 'aggressive';
  stripMarkdown?: boolean;
  trimTrailing?: boolean;
  fixQuotes?: boolean;
  addMissingCommas?: boolean;
  trackFixes?: boolean;
  throwOnError?: boolean;
  maxFixAttempts?: number;
}

Parse Result

interface ParseResult<T> {
  data: T | null;
  fixes?: Fix[];
  confidence?: number;
  warnings?: string[];
}

Development

# Install dependencies
npm install

# Run tests
npm test

# Build
npm run build

# Run examples
npx tsx examples/basic-usage.ts

License

MIT

Keywords

json

FAQs

Package last updated on 20 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts