After I do
json, err := json.Marshal(buf) I get something like:
{"a":123,"b":"abc"} But what I want is an indented version of this:
{ "a": 123, "b": "abc" } How?
Use json.MarshalIndent(group, "", "\t"), try this:
package main import ( "encoding/json" "fmt" "os" ) func main() { type ColorGroup struct { ID int Name string Colors []string } group := ColorGroup{ ID: 1, Name: "Reds", Colors: []string{"Crimson", "Red", "Ruby", "Maroon"}, } b, err := json.MarshalIndent(group, "", "\t") if err != nil { fmt.Println("error:", err) } os.Stdout.Write(b) } output:
{ "ID": 1, "Name": "Reds", "Colors": [ "Crimson", "Red", "Ruby", "Maroon" ] }
MarshalIndent