jsonc

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2022 License: MIT Imports: 2 Imported by: 22

README

jsonc

JSON with comments for Go!
GitHub Actions

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 (// of #) 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!

Contributors

Documentation

Index

Constants

View Source
const (
	ESCAPE   = 92
	QUOTE    = 34
	SPACE    = 32
	TAB      = 9
	NEWLINE  = 10
	ASTERISK = 42
	SLASH    = 47
	HASH     = 35
)

Variables

This section is empty.

Functions

func ReadFromFile

func ReadFromFile(filename string) ([]byte, []byte, error)

ReadFromFile reads jsonc file and returns JSONC and JSON encodings

func ToJSON

func ToJSON(b []byte) []byte

ToJSON returns JSON equivalent of JSON with comments

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

Unmarshal parses the JSONC-encoded data and stores the result in the value pointed to by v. Equivalent of calling `json.Unmarshal(jsonc.ToJSON(data), v)`

func Valid

func Valid(data []byte) bool

Valid reports whether data is a valid JSONC encoding or not

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL