Wie kann das Paket „encoding/json' von Go eine für Menschen lesbare JSON-Ausgabe generieren?

DDD
Freigeben: 2024-11-21 08:55:09
Original
255 Leute haben es durchsucht

How Can Go's `encoding/json` Package Generate Human-Readable JSON Output?

Verwendung des Encoding/JSON-Pakets von Go für menschenlesbare JSON-Ausgabe

Sie erwähnen, dass Sie beim Weiterleiten vor der Herausforderung stehen, menschenlesbare JSON-Ausgaben zu erzeugen die Ergebnisse Ihres foo-Befehls über jq. Obwohl es keine bekannten Open-Source-JQ-Wrapper gibt, die speziell für diesen Zweck entwickelt wurden, können Sie das integrierte Encoding/JSON-Paket von Go nutzen, um das gewünschte Ergebnis zu erzielen.

Verwendung von json.MarshalIndent() und Encoder .SetIndent()

Die Funktion json.MarshalIndent() bietet eine praktische Möglichkeit, einen JSON-Wert zu kodieren als formatierte Zeichenfolge. Durch Angabe des gewünschten Präfixes und der gewünschten Einrückung können Sie eine für Menschen lesbare Ausgabe erstellen. In ähnlicher Weise können Sie mit der SetIndent()-Methode von json.Encoder Einrückungen für Ihre JSON-Ausgabe festlegen.

Beispielcode

Hier ist ein Beispiel, das die Verwendung von json.MarshalIndent demonstriert ():

package main

import (
    "encoding/json"
)

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))
}
Nach dem Login kopieren

Sie können zur Steuerung auch json.NewEncoder verwenden Einrückung:

package main

import (
    "encoding/json"
    "os"
)

func main() {
    enc := json.NewEncoder(os.Stdout)
    enc.SetIndent("", "  ")

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

    if err := enc.Encode(m); err != nil {
        panic(err)
    }
}
Nach dem Login kopieren

Formatieren von vorgeneriertem JSON-Text

Wenn Sie vorgenerierten JSON-Text haben, können Sie zum Formatieren die Funktion json.Indent() verwenden it:

package main

import (
    "bytes"
    "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())
}
Nach dem Login kopieren

Durch die Verwendung dieser Techniken können Sie problemlos eine für Menschen lesbare JSON-Ausgabe in Ihren Go-Programmen erstellen, ohne dass dies erforderlich ist externe JQ-Wrapper.

Das obige ist der detaillierte Inhalt vonWie kann das Paket „encoding/json' von Go eine für Menschen lesbare JSON-Ausgabe generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage