Quando você precisa de dados estruturados do Copilot, pedir saída em JSON é comum. Mas o Copilot frequentemente retorna JSON quebrado com vírgulas sobrando, aspas não escapadas ou texto extra ao redor do bloco de código. Esses erros quebram parsers e desperdiçam seu tempo. Este artigo explica por que o Copilot produz JSON inválido e como corrigir seus prompts. Você aprenderá padrões de prompt específicos que forçam o Copilot a retornar JSON limpo e analisável toda vez.
Principais Conclusões: Escrevendo Prompts para JSON Válido
- Esquema JSON explícito no prompt: Defina os nomes e tipos dos campos exatos para eliminar suposições.
- Instrução de único objeto ou array JSON: Diga ao Copilot para gerar apenas o JSON, sem texto extra ou markdown.
- Prompt baseado em exemplo: Forneça uma estrutura JSON válida de exemplo para que o Copilot a espelhe exatamente.
Por que o Copilot Retorna JSON Inválido
O Copilot é um modelo de linguagem grande que gera texto com base em padrões. Quando você pede JSON, o Copilot tenta produzir JSON válido, mas muitas vezes falha devido à ambiguidade no prompt. Erros comuns incluem:
- Vírgulas sobrando após o último elemento do array ou propriedade do objeto.
- Aspas faltando em nomes de propriedades ou valores string.
- Aspas duplas não escapadas dentro de valores string.
- Texto explicativo extra antes ou depois do bloco JSON.
- Embrulhar o JSON em um bloco de código markdown com tag de linguagem.
Esses problemas ocorrem porque o Copilot trata o prompt como uma conversa, não como um esquema rígido. Sem restrições explícitas, o Copilot prioriza a legibilidade em vez da sintaxe estrita. A solução é adicionar regras de formatação precisas diretamente no seu prompt.
Passos para Escrever Prompts que Produzem JSON Válido
Siga estes passos para criar prompts que retornem JSON limpo e analisável. Cada passo se baseia no anterior para remover ambiguidades.
- Defina o esquema JSON no prompt
Escreva os nomes exatos dos campos e os tipos de dados esperados. Por exemplo: “Gere um objeto JSON com campos: nome (string), idade (número) e email (string).” Isso informa ao Copilot a estrutura antes de ele gerar qualquer coisa. - Solicite apenas um único objeto ou array JSON
Adicione uma frase: “Retorne apenas o objeto JSON. Não inclua nenhum outro texto, explicação ou formatação markdown.” Isso impede que o Copilot adicione wrappers conversacionais. - Forneça um exemplo JSON válido
Inclua um exemplo curto no prompt. Por exemplo: “Aqui está um exemplo de JSON válido: {“nome”: “João”, “idade”: 30}. Agora gere um objeto JSON semelhante para uma pessoa chamada Maria que tem 25 anos.” O Copilot espelha o padrão com mais precisão. - Especifique o formato de saída explicitamente
Diga: “Coloque o JSON entre três crases sem tag de linguagem. Não use colchetes a menos que a saída seja um array.” Isso controla o formato exato da saída. - Teste a saída com um validador JSON
Copie a saída para uma ferramenta como jsonlint.com. Se aparecerem erros, ajuste o prompt adicionando mais restrições. Correções comuns incluem remover vírgulas sobrando e escapar aspas.
Exemplo: Prompt que Falha
Prompt ruim: “Me dê uma lista de usuários em JSON.”
O Copilot frequentemente retorna algo como: “Aqui está uma lista de usuários: [ { nome: “Alice”, idade: 30, } ]” — faltando aspas em nome, vírgula sobrando e texto extra.
Exemplo: Prompt que Funciona
Prompt bom: “Gere um array JSON de objetos de usuário. Cada objeto deve ter os campos: nome (string), idade (número) e email (string). Retorne apenas o array JSON. Não inclua nenhum outro texto. Exemplo: [{“nome”: “Alice”, “idade”: 30, “email”: “alice@exemplo.com”}]. Agora gere 5 usuários.”
Este prompt produz JSON válido sem texto extra.
Erros Comuns e Como Evitá-los
Copilot inclui texto extra após o JSON
Se o Copilot adicionar uma frase de encerramento como “Espero que ajude!” após o JSON, seu prompt precisa de uma regra de saída mais rígida. Adicione: “Não inclua nenhum texto antes ou depois do JSON. A saída deve começar e terminar com a estrutura JSON.”
Copilot usa aspas simples em vez de aspas duplas
JSON exige aspas duplas para nomes de propriedades e valores string. Se o Copilot usar aspas simples, especifique: “Use aspas duplas para todos os nomes de propriedades e valores string. Não use aspas simples.” Inclua isso no prompt.
Copilot adiciona vírgula sobrando
Vírgulas sobrando são inválidas em JSON. Adicione: “Não inclua vírgulas sobrando após o último item em um array ou a última propriedade em um objeto.” Forneça um contraexemplo no prompt.
Copilot embrulha JSON em bloco de código markdown com tag de linguagem
Se você precisa de JSON puro sem markdown, diga: “Retorne o JSON sem nenhuma formatação markdown. Não use três crases.” Se preferir um bloco de código para legibilidade, especifique: “Coloque o JSON entre três crases com a tag de linguagem json.” Seja explícito.
Comparação de Estilos de Prompt para Saída JSON
| Item | Prompt Vago | Prompt Estruturado |
|---|---|---|
| Definição do esquema | Nenhuma ou implícita | Nomes e tipos de campos explícitos |
| Regra de formato de saída | Nenhuma | “Retorne apenas o JSON. Sem texto extra.” |
| Exemplo fornecido | Não | Sim, com JSON válido |
| Taxa de erro | Alta — frequentemente inválido | Baixa — geralmente válido na primeira tentativa |
Prompts estruturados reduzem erros porque removem toda ambiguidade. O esforço extra ao escrever o prompt economiza tempo depurando a saída.
Conclusão
Agora você pode escrever prompts para Copilot que retornam consistentemente JSON válido. Comece definindo o esquema exato e as regras de saída no seu prompt. Use um exemplo para ancorar o padrão. Teste a saída com um validador e refine o prompt se aparecerem erros. Para dados complexos, divida a solicitação em estruturas JSON menores e combine-as depois. Essa abordagem elimina falhas de parsing e permite usar a saída do Copilot diretamente em suas aplicações.