Maison >développement back-end >Golang >Comment puis-je générer une sortie JSON lisible par l'homme dans Go ?

Comment puis-je générer une sortie JSON lisible par l'homme dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-20 11:31:55883parcourir

How Can I Generate Human-Readable JSON Output in Go?

Sortie JSON lisible par l'homme dans Go

Dans Go, il est possible de générer une sortie JSON lisible par l'homme sans avoir besoin d'un jq externe emballage. Le package encoding/json fournit des fonctions intégrées pour embellir la sortie JSON.

Utilisation de json.MarshalIndent() ou json.Encoder.SetIndent()

Le json. La fonction MarshalIndent() formate une valeur Go sous forme de chaîne JSON et la met en retrait en fonction du préfixe et du retrait spécifiés. caractères.

Par exemple, pour formater une carte au format JSON :

m := map[string]interface{}{"id": "uuid1", "name": "John Smith"}

data, err := json.MarshalIndent(m, "", "  ")
if err != nil {
    panic(err)
}
fmt.Println(string(data))

Sortie :

{
  "id": "uuid1",
  "name": "John Smith"
}

Vous pouvez également utiliser json.Encoder.SetIndent() méthode pour indenter la sortie d'un encodeur.

Utilisation json.Indent()

Si vous avez une chaîne JSON que vous souhaitez formater, vous pouvez utiliser la fonction json.Indent() :

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"
}

Personnalisation de l'indentation

Les caractères d'indentation peuvent être personnalisés en fonction de votre préférence. Par défaut, le préfixe est une chaîne vide et le retrait est un espace simple. Vous pouvez remplacer ces valeurs par défaut pour créer une sortie JSON avec le style d'indentation souhaité.

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