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