package main import ( "encoding/json" "os" ) func readOrCreateJson(filename string, value any) error { f, err := os.Open(filename) if err != nil { if os.IsNotExist(err) { return writeJson(filename, value) } return err } defer f.Close() if json.NewDecoder(f).Decode(value); err != nil { return err } return nil } func writeJson(filename string, value any) error { f, err := os.Create(filename) if err != nil { return err } defer f.Close() enc := json.NewEncoder(f) enc.SetIndent("", " ") if err := enc.Encode(value); err != nil { return err } return nil }