josdejong/jsonrepair

Cannot repair JSON with an extra closing brace before additional root properties

Aberta

#159 aberto em 28 de mar. de 2026

 (3 comentários) (0 reação) (0 responsável)TypeScript (88 forks)github user discovery
enhancementhelp wanted

Métricas do repositório

Stars
 (2.397 estrelas)
Métricas de merge de PR
 (Mesclagem média 26d 22h) (2 fundiu PRs em 30d)

Description

jsonrepair appears unable to repair JSON where an extra closing brace closes the root object too early, followed by additional top-level properties.

Minimal repro:

import { jsonrepair } from 'jsonrepair'

const broken = '{"a":{"b":1}}},"c":2}'
console.log(jsonrepair(broken))

CLI repro:

printf '%s' '{"a":{"b":1}}},"c":2}' | jsonrepair

Actual result:

Error: Unexpected character "," at position 14

Expected result:

{"a":{"b":1},"c":2}

The library already documents repairs like adding missing closing brackets, repairing truncated JSON, stripping trailing commas, etc. This case seems like the inverse: there is one superfluous closing brace, and removing it would make the document valid again.

I ran into this with a larger LLM-generated JSON payload where a nested object had one extra } immediately before the next top-level key, which caused the root object to close early.

If this behavior is intentional and out of scope, a note in the README about not handling superfluous closing braces would also help.

Guia do colaborador