Maison > développement back-end > Golang > le corps du texte

Comment imprimer joliment la sortie JSON en Go à l'aide des fonctions intégrées ?

Linda Hamilton
Libérer: 2024-11-22 04:54:11
original
581 Les gens l'ont consulté

How to Pretty Print JSON Output in Go Using Built-in Functions?

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 :

  • prefix : La chaîne à ajouter avant chaque ligne
  • indent : La chaîne à ajouter après chaque niveau d'indentation

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))
Copier après la connexion

Output :

{
  "id": "uuid1",
  "name": "John Smith"
}
{
  "id": "uuid1",
  "name": "John Smith"
}
Copier après la connexion

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)
}
Copier après la connexion

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())
Copier après la connexion

Sortie :

{
  "id": "uuid1",
  "name": "John Smith"
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal