Parsing Json Matray en Go con el paquete JSON
Problema: ¿Cómo puede analizar una cadena JSON que representa una matriz en ir usando el paquete JSON?
. Ejemplo:
Considere el siguiente código de Go:escriba jsontype struct { Matriz [] cadena } func Main () { dataJson: = `[" 1 "," 2 "," 3 "]` arr: = jsontype {} Unmarshaled: = json.unmarshal ([] byte (datajson), & arr.array) log.printf ("Unmarshaled: %V", soltero) }
type JsonType struct { Array []string } func main() { dataJson := `["1", "2", "3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }
explicación:
El código proporcionado define un tipo jsontype con una matriz de cadenas. Luego intenta soltar una cadena JSON en el campo de matriz de una instancia JSONTYPE. Sin embargo, hay un problema con el código.
solución:
El valor de retorno de la unmarshal es un error. El código originalmente imprimió este error en lugar de la matriz soltera. Para solucionarlo, puede cambiar el código a:err: = json.unmarshal ([] byte (dataJson), & arr)
type JsonType struct { Array []string } func main() { dataJson := `["1", "2", "3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }adicionalmente, puede simplificar el código directamente unmarshaling en el porta _ = json.unmarshal ([] byte (dataJson), & arr)
Este código asigna la porción soltera a arr. El subrayador antes de la asignación suprime el valor de error, que no se usa en este código.
type JsonType struct { Array []string } func main() { dataJson := `["1", "2", "3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }usando el paquete JSON de manera efectiva, puede analizar fácilmente las matrices JSON en Go.
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