Jolie impression de la sortie JSON dans Go avec des fonctions intégrées
Lorsque vous traitez la sortie JSON dans les programmes Go, il est souvent souhaitable de la faire lisible par l'homme. Bien que jq puisse être utilisé à cette fin, il existe également des fonctions intégrées dans la bibliothèque standard Go qui peuvent obtenir le résultat souhaité.
Json Marshal Indenting
Le Le package encoding/json fournit la fonction json.MarshalIndent() pour une jolie impression de la sortie JSON. Il faut deux paramètres supplémentaires :
En passant une chaîne vide comme préfixe et un espace comme retrait, vous pouvez obtenir un JSON lisible par l'homme. output :
m := map[string]interface{}{"id": "uuid1", "name": "John Smith"} data, err := json.MarshalIndent(m, "", " ") if err != nil { panic(err) } fmt.Println(string(data))
Output :
{ "id": "uuid1", "name": "John Smith" } { "id": "uuid1", "name": "John Smith" }
Vous pouvez également utiliser la méthode json.Encoder.SetIndent() pour définir les paramètres d'indentation lors de l'utilisation d'un Encoder :
enc := json.NewEncoder(os.Stdout) enc.SetIndent("", " ") if err := enc.Encode(m); err != nil { panic(err) }
Json Indenting
Si vous avez déjà un JSON chaîne, vous pouvez utiliser la fonction json.Indent() pour la formater :
src := `{"id":"uuid1","name":"John Smith"}` dst := &bytes.Buffer{} if err := json.Indent(dst, []byte(src), "", " "); err != nil { panic(err) } fmt.Println(dst.String())
Sortie :
{ "id": "uuid1", "name": "John Smith" }
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!