Um validador que so diz “token inesperado” informou onde desistiu, nao o que voce fez de errado. Geralmente sao lugares diferentes. Uma virgula ausente normalmente e reportada no proximo token, nao na virgula que falta, e um colchete nao fechado e reportado no final do arquivo independentemente de em qual linha foi aberto.
O que o validador de JSON reporta
Cole um documento e pressione Validar, ou simplesmente pare de digitar, ja que
a validacao e executada automaticamente. O resultado nomeia a construcao real
que esta errada: aspas simples, uma chave sem aspas, uma virgula de cauda,
uma palavra-chave com caso incorreto como True ou NULL, NaN ou
Infinity, um zero a esquerda, ou uma sequencia de escape incorreta, cada
uma com a linha e coluna onde comeca.
Chaves duplicadas, que a maioria dos validadores nao menciona
Uma chave duplicada e JSON legal. A especificacao permite, e todo analisador que voce provavelmente usa mantem o ultimo valor e descarta silenciosamente o anterior. Isso significa que dados podem desaparecer de um documento que e perfeitamente valido, sem nenhum erro em lugar nenhum. Cole
{"region":"eu-west-1","retries":3,"region":"us-east-1"}
e o validador reporta como JSON valido, uma linha, e separadamente avisa:
Chave duplicada “region”. O ultimo valor vence, o anterior na linha 1 e descartado.
Isso e um aviso, nao um erro, porque a especificacao realmente permite. Mas e o tipo de bug que e invisivel ate que algo downstream leia o valor errado, e a maioria das ferramentas nunca o menciona.
O que conta como erro versus aviso
Um erro significa que o documento nao e JSON valido e nada downstream deve tentar analisa-lo: um problema de sintaxe, um caractere ilegal, um erro estrutural. Um aviso significa que o documento e analisado, mas algo sobre ele merece uma segunda olhada, como uma chave duplicada. A linha de status no topo informa qual voce esta olhando, e erros marcam a linha que falhou na margem do editor para que voce possa encontrala sem rolar.
Por que isso importa antes de commitar ou implantar
Arquivos de configuracao, dados de teste de API e dados gerados todos passam por um analisador JSON eventualmente, geralmente em producao, onde a mensagem de erro e o que o analisador padrao do runtime fornece. Capturar uma virgula de cauda ou uma chave duplicada aqui, com uma mensagem que nomeia o erro, e mais rapido do que depurar o mesmo problema apos uma implantacao.