Riparare il JSON prodotto da un LLM

Le risposte di IA sembrano JSON, ma spesso contengono markdown fences, commenti, letterali in stile Python o sintassi di oggetto JavaScript.

Problemi comuni del JSON da LLM

Markdown code fence, commenti, apici singoli, chiavi senza virgolette, virgole finali e i valori Python True, False o None possono tutti far fallire il parsing JSON strict di una risposta altrimenti utile.

Flusso di riparazione

Incolla la risposta in JSON Fix, esegui Repair & Format e poi Validate per confermare che l’output sia JSON strict prima di usarlo nel codice o in una chiamata API.

Nota sulla privacy

La riparazione avviene localmente nel browser: utile per fare debug di prompt che contengono esempi interni o payload di API private.

Strumenti e ricette

Per la pulizia nel browser, incolla l’output del LLM in JSON Fix e clicca Repair & Format — in una sola passata rimuove markdown code fence (```json ... ```), virgole finali e letterali Python (True/False/None). In Node, il pacchetto npm jsonrepair fa la stessa cosa in modo programmatico, senza dipendenze.

Prompt che riducono il lavoro di riparazione

Vincola l’output: «Rispondi con un singolo oggetto JSON e nient’altro, senza markdown fence, senza commenti». Se il modello lo supporta, attiva la modalità JSON o response_format json_object — questo elimina fence e prosa per costruzione. Uno schema nel prompt (o via function calling) riduce ulteriormente le chiavi inventate.

JSON in streaming da un LLM

Mentre i token arrivano in streaming, il JSON è invalido per definizione — la parentesi di chiusura non è ancora arrivata. O bufferizzi fino al termine della risposta e fai un parse unico, o usi un parser tollerante al streaming (jsonrepair, partial-json) che restituisce il prefisso valido più completo per poter renderizzare in modo incrementale.

Quando fallire forte invece di riparare

Se il JSON innesca una transazione finanziaria, un cambio di permessi o un’azione distruttiva, non riparare in silenzio — rifiuta la risposta e riprova, oppure mostra l’output grezzo per una revisione. La riparazione è adatta per visualizzazione, debug e recupero; mai per input che cambiano lo stato senza revisione umana.