Desempacotando números inteiros codificados em string em Go
Ao tentar desempacotar JSON com valores de string em um campo inteiro, pode-se encontrar o erro: "json: não é possível desempacotar a string no valor Go do tipo int64." Isso ocorre porque o desempacotamento JSON por padrão assume que tipos numéricos, como int64, devem conter caracteres numéricos.
Problema:
Uma estrutura Go que define um campo int64 está recebendo JSON com o correspondente campo codificado como uma string. Essa incompatibilidade nos tipos de dados faz com que o processo de desempacotamento falhe.
Solução:
A solução recomendada é usar a tag ",string" na tag json struct para o campo inteiro . Isso instrui o processo de desempacotamento a aceitar valores do tipo string:
type tySurvey struct { Id int64 `json:"id,string,omitempty"` Name string `json:"name,omitempty"` }
Implementação:
Com a estrutura modificada, os dados JSON com um campo de id codificado como uma string agora podem ser desempacotados com sucesso em um objeto Go do tipo tySurvey.
Nota:
É importante lembrar que especificar omitempty na tag não permitirá que a string vazia seja decodificada. omitempty é usado exclusivamente para fins de codificação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3