JsonConfigReader is a proxy for golang's io.Reader that strips line comments and trailing commas, allowing you to use json as a reasonable config format.
Comments start with //
and continue to the end of the line.
Multiline comments are also supported with /*
and */
.
If a trailing comma is in front of ]
or }
it will be stripped as well.
Given settings.json
{
"key": "value", // k:v
// a list of numbers
"list": [1, 2, 3],
/*
a list of numbers
which are important
*/
"numbers": [1, 2, 3],
}
You can read it in as a normal json file:
package main
import (
"encoding/json"
"fmt"
"github.com/DisposaBoy/JsonConfigReader"
"os"
)
func main() {
var v interface{}
f, _ := os.Open("settings.json")
// wrap our reader before passing it to the json decoder
r := JsonConfigReader.New(f)
json.NewDecoder(r).Decode(&v)
fmt.Println(v)
}