Skip to content
JSON with comments for Go!
Go
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Initial commit Sep 1, 2019
.travis.yml Update .travis.yml Sep 6, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Sep 6, 2019
CONTRIBUTING.md Create CONTRIBUTING.md Sep 6, 2019
DOCUMENTATION.md Create DOCUMENTATION.md Sep 1, 2019
LICENSE Initial commit Sep 1, 2019
README.md
carbon.png Add images Sep 1, 2019
jsonc.go Add source Sep 1, 2019
jsonc.png Add images Sep 1, 2019
jsonc_test.go Add benchmarks Sep 6, 2019
translator.go Closes #4 Sep 6, 2019

README.md

jsonc

JSON with comments for Go!
travisci

JSONC is a superset of JSON which supports comments. JSON formatted files are readable to humans but the lack of comments decreases readability. With JSONC, you can use block (/* */) and single line (//) comments to describe the functionality. Microsoft VS Code also uses this format in their configuration files like settings.json, keybindings.json, launch.json, etc.

jsonc

What this package offers

JSONC for Go offers ability to convert and unmarshal JSONC to pure JSON. It also provides functionality to read JSONC file from disk and return JSONC and corresponding JSON encoding to operate on. However, it only provides a one way conversion. That is, you can not generate JSONC from JSON. Read documentation for detailed examples.

Usage

go get it

Run go get command to install the package.

$ go get muzzammil.xyz/jsonc

Import jsonc

Import muzzammil.xyz/jsonc to your source file.

package main

import (
  "fmt"

  "muzzammil.xyz/jsonc"
)

Test it

Now test it!

func main() {
  j := []byte(`{"foo": /*comment*/ "bar"}`)
  jc := jsonc.ToJSON(j) // Calling jsonc.ToJSON() to convert JSONC to JSON
  if jsonc.Valid(jc) {
    fmt.Println(string(jc))
  } else {
    fmt.Println("Invalid JSONC")
  }
}
$ go run app.go
{"foo":"bar"}

Contributions

Contributions are welcome but kindly follow the Code of Conduct and guidelines. Please don't make Pull Requests for typographical errors, grammatical mistakes, "sane way" of doing it, etc. Open an issue for it. Thanks!

You can’t perform that action at this time.