golang的JSON5实现:gojson5
jopen
10年前
gojson5
JSON5 是另一个JSON。
JSON 是很严格的,主键必须在引号中,字符串必须用双引号,对象和数组不能有逗号结尾,不能有注释。这些在过去都是必须的,但是随着支持 ECMAScript 5 的浏览器引擎的出现,例如 V8,这些限制就显得很臃肿。
JSON5 和 JSON 的关系就像 ECMAScript 5 和 ECMAScript 3 的关系。JSON5 同样是 ECMAScript 5 的严格的子集INSTALL
$ brew tap yosuke-furukawa/json5 $ brew install json5
HOW TO USE
$ json5 -c path/to/test.json5 # output stdout $ json5 -c path/to/test.json5 -o path/to/test.json # output path/to/test.json
go get
$ go get github.con/yosuke-furukawa/gojson5
示例
package main import ( "encoding/json" "fmt" "github.com/yosuke-furukawa/json5/encoding/json5" "os" ) func main() { var data interface{} dec := json5.NewDecoder(os.Stdin) err := dec.Decode(&data) if err != nil { fmt.Println(err) } b, err := json.MarshalIndent(data, "", " ") if err != nil { fmt.Println(err) } fmt.Println(string(b)) } // This is json5 demo // json5 can write comment in your json { key : "Key does not need double quote", // json specific "of" : "course we can use json as json5", trailing : "trailing comma is ok", } $ json5 -c example.json5 # output #{ # "key ": "Key does not need double quote", # "of": "course we can use json as json5", # "trailing ": "trailing comma is ok" #}