Desclasificar enteros codificados en cadenas en Go
Al intentar descomponer JSON con valores de cadena en un campo de enteros, se puede encontrar el error: "json: no se puede descomponer la cadena en el valor Go de tipo int64". Esto se debe a que la desclasificación de JSON de forma predeterminada supone que los tipos numéricos, como int64, deben contener caracteres numéricos.
Problema:
Una estructura Go que define un campo int64 recibe JSON con el correspondiente campo codificado como una cadena. Esta discrepancia en los tipos de datos hace que falle el proceso de desclasificación.
Solución:
La solución recomendada es utilizar la etiqueta ",string" en la etiqueta json struct para el campo de número entero . Esto indica al proceso de desclasificación que acepte valores de tipo cadena:
type tySurvey struct { Id int64 `json:"id,string,omitempty"` Name string `json:"name,omitempty"` }
Implementación:
Con la estructura modificada, los datos JSON con un campo de identificación codificado como una cadena ahora se pueden descomponer exitosamente en un objeto Go de tipo tySurvey.
Nota:
Es importante recordar que especificar omitempty en la etiqueta no permitirá que la cadena vacía ser decodificado. omitempty se utiliza exclusivamente con fines de codificación.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3