Maison > Article > développement back-end > chaîne golang 转json
Dans Golang, pour convertir le type de chaîne en objet json, vous pouvez utiliser le package json dans la bibliothèque standard.
Tout d'abord, nous pouvons utiliser la fonction json.Marshal() pour convertir des objets en golang en chaînes au format json. Par exemple :
type Person struct { Name string `json:"name"` Age int `json:"age"` } p := Person{Name: "Tom", Age: 29} jsonStr, err := json.Marshal(p) if err != nil { fmt.Println("json.Marshal failed:", err) } fmt.Println(string(jsonStr))
Le code ci-dessus affichera le résultat suivant :
{"name":"Tom","age":29}
Ensuite, nous pouvons utiliser la fonction json.Unmarshal() pour convertir la chaîne json en un objet en golang. Par exemple :
jsonStr := `{"name":"Tom","age":29}` var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println("json.Unmarshal failed:", err) } fmt.Println(p.Name, p.Age)
Le code ci-dessus affichera le résultat suivant :
Tom 29
Il convient de noter que lors de l'analyse de json, des paramètres de type []byte sont utilisés, le type de chaîne doit donc être converti en [] via un type forcé conversion.
De plus, vous pouvez également utiliser directement la fonction json.NewDecoder() pour analyser la chaîne de format json dans un objet json, par exemple :
jsonStr := `{"name":"Tom","age":29}` var data interface{} decoder := json.NewDecoder(strings.NewReader(jsonStr)) err := decoder.Decode(&data) if err != nil { fmt.Println("json.Unmarshal failed:", err) } fmt.Println(data)
Le code ci-dessus affichera le résultat suivant :
map[name:Tom age:29]
De cette façon, nous pouvons utiliser golang Le package json de la bibliothèque standard convertit les types de chaînes en objets json.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!