decodificando JSON com a conversão do tipo de string para float64 em go
analisando as cordas JSON que contêm valores float64 podem representar os desafios quando os valores são armazenados como strings. Para resolver esse problema, Go fornece uma solução direta. Erro:
json: Não é possível soltar string no valor Go do tipo float64 esse erro ocorre porque o decodificador JSON tenta converter a representação da string do número float64 para um valor float64 diretamente, que não é suportado. Anotação
Para resolver esse problema, você precisa instruir explicitamente o decodificador para tratar a string como um float64 usando uma anotação de conversão de tipo. Esta anotação é adicionada à definição de campo na estrutura do produto:
json: cannot unmarshal string into Go value of type float64digite o produto estrutura { String de nome Price Float64 `JSON:", String "` }
a tag ", string" diz ao decodificador JSON que o campo de preços é uma string que deve ser convertida em um float64.
Código atualizado:
? importação ( "Encoding/JSON" "FMT" ) Tipo de estrutura do produto { String de nome Price Float64 `JSON:", String "` } func main () { S: = `{" Name ":" Galaxy Nexus "," Price ":" 3460.00 "}` Produto var Pro err: = json.unmarshal ([] byte (s), & pro) se err == nil { fmt.printf ("% v \ n", pro) } outro { fmt.println (err) fmt.printf ("% v \ n", pro) } }
json: cannot unmarshal string into Go value of type float64saída esperada:
executando este código produzirá a saída esperada: {name: Galaxy Nexus Price: 3460}
o JSON.unMarshal Decod Decods Functfualmente float64.
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