Obtenga la representación de cadena de una estructura en Go
-
Use el método
String
para convertir una estructura en una cadena en Go -
Use el método
json.Marshal
para convertir una estructura a JSON en Go
Go nos permite múltiples formas estándar simples de serializar datos de una estructura.
Use el método String
para convertir una estructura en una cadena en Go
El paquete GoLang String
ayuda a implementar funciones simples para manipular y editar cadenas codificadas en UTF-8.
Código de ejemplo:
package main
import "fmt"
type myStructure struct {
bar string
}
func (f myStructure) String() string {
return fmt.Sprintf("The structure I made has the following data: %s", f.bar)
}
func main() {
fmt.Println(myStructure{"Hello, World! GoLang is fun!"})
}
Producción :
The structure I made has the following data: Hello, World! GoLang is fun!
En el código anterior, hemos adjuntado una función String()
a una estructura con nombre llamada myStructure
que nos permite convertir una estructura en una cadena.
Use el método json.Marshal
para convertir una estructura a JSON en Go
El paquete encoding/json
de GoLang tiene utilidades que se pueden usar para convertir hacia y desde JSON. El método json.Marshal
puede convertir una estructura a JSON.
Código de ejemplo:
package main
import (
"encoding/json"
"fmt"
)
func main() {
type MyStructure struct {
Message string `json:"From Structure"`
}
val := &MyStructure{
Message: "Hello, World!",
}
// convert struct to json string
jsonBytes, err := json.Marshal(val)
fmt.Println(string(jsonBytes), err)
}
Producción :
{"From Structure":"Hello, World!"} <nil>
Tenga en cuenta que al usar el método anterior, solo los campos exportados de la estructura definida están disponibles para la biblioteca externa. Por lo tanto, solo los campos de exportación de nuestra estructura se copiarán en la cadena JSON convertida.
Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.
LinkedIn