Maison > développement back-end > Golang > Le package « encoding/json » de Go offre-t-il un moyen de formater la sortie JSON pour une lisibilité humaine ?

Le package « encoding/json » de Go offre-t-il un moyen de formater la sortie JSON pour une lisibilité humaine ?

Mary-Kate Olsen
Libérer: 2024-11-19 04:13:03
original
364 Les gens l'ont consulté

Does Go's `encoding/json` Package Offer a Way to Format JSON Output for Human Readability?

Jq Wrapper pour une sortie JSON lisible par l'homme dans Go

Question :

Existe-t-il un wrapper Jq open source pour Go qui peut convertir une sortie JSON lisible par machine en format lisible par l'homme ?

Réponse :

Oui, le package encoding/json dans Go fournit une prise en charge intégrée pour formater la sortie JSON.

Solution :

Le code suivant montre comment utiliser json.MarshalIndent() pour créer une sortie JSON indentée :

import (
    "encoding/json"
    "fmt"
)

func main() {
    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

Sortie :

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

Si vous avez une chaîne JSON existante, vous pouvez utiliser json.Indent() pour la formater :

import "encoding/json"

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

Personnalisation :

Vous pouvez personnaliser l'indentation à l'aide des paramètres de préfixe et d'indentation des fonctions d'indentation. Par exemple :

data, err := json.MarshalIndent(m, "+", "-")
if err != nil {
    panic(err)
}
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!

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