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"  #}

项目主页:http://www.open-open.com/lib/view/home/1417707571417