Nesta página

Guarde a resposta original da IA antes de editar o JSON. Se ele estiver dentro de um bloco Markdown, copie o conteúdo e valide primeiro. Talvez nem seja preciso reparar. Se for, compare o resultado com o original antes de usar: corrigir a sintaxe não recupera os dados que faltam. Para isso, você vai precisar consultar a fonte ou pedir a resposta completa.

O que fazer com a resposta recebida

  1. Salve uma cópia da resposta inteira para comparar as alterações.
  2. Se houver um único bloco Markdown completo, copie apenas o documento interno. Se houver texto misturado ou vários blocos, identifique primeiro qual documento corresponde à tarefa.
  3. Valide o documento. Se a sintaxe já estiver correta, passe à conferência dos dados; reparar não é uma etapa obrigatória.
  4. Se precisar de reparo, abra o reparador JSON, cole o original em Texto de entrada, escolha Reparar JSON e selecione Reparar. Colar ou mudar o modo não executa a operação.
  5. Revise a saída proposta, o aviso e as alterações. Compare valores e campos com o original completo ou a fonte.
  6. Depois de conferir as alterações e os dados de que sua aplicação precisa, selecione Copiar saída.
O que você recebeu Primeira ação O que conferir
Um bloco Markdown completo com JSON válido dentro Copiar apenas o JSON e validar. Que só o envoltório tenha sido removido.
JSON com comentários ou vírgulas finais Usar JSONC para JSON; consulte o guia de JSON e JSONC. Que essas extensões sejam removidas e os valores preservados.
Outros erros, como aspas simples ou chaves sem aspas Corrigir o erro à mão se souber como, ou tentar Reparar JSON. O que o reparador mudou e se acrescentou algum valor.
Um documento cortado no meio de um valor ou registro Pedir o documento completo ou consultar a fonte. Qual conteúdo falta; acrescentar fechamentos não o recupera.

Se você reconhece o erro e quer corrigir à mão, veja como corrigir erros de sintaxe JSON. Quando a resposta misturar explicações e vários blocos de código, encontre primeiro o JSON de que precisa. O reparador não tem como escolher por você qual documento usar.

Um bloco Markdown completo: remover o envoltório

Esta é a resposta de exemplo, incluindo as marcas Markdown:

```json
{"pedido":"A-17","unidades":2,"entregue":false}
```

Dados esperados após remover apenas o envoltório:

{"pedido":"A-17","unidades":2,"entregue":false}

O JSON dentro do bloco já é válido; basta copiar e validar. No teste com a resposta inteira, Reparar JSON removeu as marcas Markdown e manteve as quebras de linha ao redor do documento. Os dados ficaram como no exemplo acima.

Confira se pedido manteve o texto "A-17", unidades o número 2 e entregue o booleano false. Neste exemplo, só as marcas Markdown devem desaparecer. O relatório pode agrupar várias alterações, então compare também o conteúdo, sem se basear apenas na quantidade de itens do relatório.

Ao escolher esse modo, aparece o aviso “O reparo é heurístico e pode alterar o significado. Revise cada mudança.” Nesta operação, o diagnóstico também informa: “A saída foi produzida por um reparo heurístico. Confira se o significado está correto.” O aviso do modo permanece mesmo quando uma entrada válida passa sem alterações.

Um documento truncado: um valor acrescentado não é um valor recuperado

Agora a resposta termina logo após os dois-pontos:

{"pedido":"A-17","unidades":

Resultado do teste deste exemplo em Reparar JSON:

{"pedido":"A-17","unidades":null}

O reparador acrescentou null e uma chave de fechamento. A sintaxe agora é válida, mas ainda não sabemos quantas unidades havia: poderiam ser 2, 20 ou outra quantidade. Esse null não é o valor recuperado. Também não sabemos se a aplicação aceita nulos nesse campo ou se faltam outros dados do pedido.

Peça a resposta completa novamente ou procure a quantidade na fonte original e preencha o campo. O resultado acima vale para este exemplo. Se o corte ocorrer em outro ponto, o reparador pode fazer alterações diferentes ou falhar. O mesmo vale para um texto ou array incompleto: acrescentar o fechamento não traz de volta o conteúdo perdido.

Sua aplicação espera texto ou um número?

Estes dois documentos têm sintaxe válida:

{"unidades":"2"}
{"unidades":2}

O primeiro contém texto e o segundo um número. O RFC 8259 distingue esses tipos de valores. Se o contrato da aplicação exigir um número, o primeiro documento não o atende. Confira a fonte antes de corrigir: converter tipos sem revisão pode mudar dados, como um identificador "002" cujos zeros fazem parte do valor.

O reparador não conhece as regras da sua aplicação: quais campos são obrigatórios, que tipos cada um aceita ou quantos registros você pediu. Você precisa conferir isso mesmo quando o JSON passa na validação de primeira.

Revisão antes de usar a saída

  • Apenas envoltórios foram removidos ou foram acrescentados valores, aspas ou fechamentos?
  • Os campos obrigatórios e a quantidade esperada de registros continuam presentes?
  • Identificadores, números, booleanos e nulos foram preservados, com os tipos exigidos pelo destino?
  • Há avisos, como possível perda de precisão em números grandes ou muito precisos? Confira o texto original e a representação que a aplicação utilizará.
  • Você consegue justificar cada alteração com o documento completo ou a fonte?

Se a ferramenta indicar sucesso, a saída tem sintaxe válida; ainda é preciso conferir os dados que ela acrescentou. Se o processamento parar por causa de um limite, leia a mensagem para saber qual limite foi atingido. Essa falha, por si só, não diz se o JSON tem um erro de sintaxe ou se pode ser reparado.

Use o resultado depois de conferir que as alterações preservam os dados e que eles atendem ao que sua aplicação precisa. Se um valor ou tipo estiver errado, consulte a fonte para corrigir. Se faltar informação e você não tiver onde conferir, peça os dados novamente.

No próximo pedido, especifique que quer apenas JSON e indique os campos, seus tipos e quantos registros espera receber. Assim fica mais fácil perceber o que falta ou não corresponde ao pedido quando você revisar a resposta.

Compartilhar este guia

Link do artigo