Maison  >  Article  >  développement back-end  >  chaîne golang 转json

chaîne golang 转json

WBOY
WBOYoriginal
2023-05-13 10:04:073301parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn