package main import ( "encoding/json" "log" ) import "io/ioutil" import "os" func main() { if len(os.Args) != 2 { log.Fatal("Usage: jsonformat.go <filename>") } byt, err := ioutil.ReadFile(os.Args[1]) if err != nil { log.Fatalf("ERROR: Unable to read file: %v\n", os.Args[1]) } var dat map[string]interface{} if err := json.Unmarshal(byt, &dat); err != nil { log.Fatalf("ERROR: Invalid JSON file '%v': %v\n", os.Args[1], err) } if output, err := json.MarshalIndent(dat, "", " "); err != nil { log.Fatalf("ERROR: Unable to indent JSON file: %v\n", os.Args[1]) } else { os.Stdout.Write(append(output, '\n')) } }