package main import ( "flag" "fmt" "os" ) func main() { var fi, fo string flag.Usage = func() { fmt.Println("json2nats version v0.2") flag.PrintDefaults() } flag.StringVar(&fi, "i", "default.json", "Json file name") flag.StringVar(&fo, "o", "", "Output file name") flag.Parse() bi, err := os.ReadFile(fi) if err != nil { panic(err) } fmt.Println("[OK] Read json file:", fi) var bo []byte = make([]byte, 0) for i := range bi { switch bi[i] { case ' ': case '\n': case '\r': // do nothing. case '"': bo = append(bo, []byte(`\"`)...) case ',': bo = append(bo, []byte(`, `)...) default: bo = append(bo, bi[i]) } } fmt.Println("[OK] Make nats tool string:") if fo != "" { err = os.WriteFile(fo, bo, 0644) if err != nil { panic(err) } fmt.Println("[OK] Write to:", fo) } fmt.Println(string(bo)) }