Maison  >  Article  >  développement back-end  >  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
Mary-Kate Olsenoriginal
2024-11-19 04:13:03246parcourir

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

Sortie :

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

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())
}

Sortie :

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

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

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!

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