Skip to content
A simple Go package to Query over JSON/YAML/XML/CSV Data
Go Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.travis.yml Add go 1.13.x for Travis CI (#60) Sep 19, 2019
CONTRIBUTING.md
LICENSE.md Change license to MIT Jun 24, 2018
Makefile Code refactor by keeping version compatibility Oct 10, 2019
README.md Code refactor by keeping version compatibility Oct 10, 2019
decoder.go Add support for custom JSON decoder. Issue #17 Jul 12, 2018
decoder_test.go Add support for custom JSON decoder. Issue #17 Jul 12, 2018
doc.go Code refactor by keeping version compatibility Oct 10, 2019
go.mod Add go.mod file Oct 1, 2019
gojsonq.png Add gojsonq logo (#38) Jan 17, 2019
helper.go Code refactor by keeping version compatibility Oct 10, 2019
helper_test.go Code refactor by keeping version compatibility Oct 10, 2019
jsonq.go Code refactor by keeping version compatibility Oct 10, 2019
jsonq_test.go
jsonq_testdata_test.go Code refactor by keeping version compatibility Oct 10, 2019
option.go Code refactor by keeping version compatibility Oct 10, 2019
option_test.go Code refactor by keeping version compatibility Oct 10, 2019
query.go Code refactor by keeping version compatibility Oct 10, 2019
query_test.go Code refactor by keeping version compatibility Oct 10, 2019
result.go Code refactor by keeping version compatibility Oct 10, 2019
result_test.go Add support for Result. Resolves #61 Sep 23, 2019

README.md

gojsonq-logo

Build Status Project status Go Report Card Coverage Status GoDoc License

A simple Go package to Query over JSON Data. It provides simple, elegant and fast ODM like API to access, query JSON document

Installation

Install the package using

$ go get github.com/thedevsaddam/gojsonq
// or
$ go get gopkg.in/thedevsaddam/gojsonq.v2

Usage

To use the package import it in your *.go code

import "github.com/thedevsaddam/gojsonq"
// or
import "gopkg.in/thedevsaddam/gojsonq.v2"

Let's see a quick example:

See in playground

package main

import "github.com/thedevsaddam/gojsonq"

func main() {
	const json = `{"name":{"first":"Tom","last":"Hanks"},"age":61}`
	name := gojsonq.New().FromString(json).Find("name.first")
	println(name.(string)) // Tom
}

Another example:

See in playground

package main

import (
	"fmt"

	"github.com/thedevsaddam/gojsonq"
)

func main() {
	const json = `{"city":"dhaka","type":"weekly","temperatures":[30,39.9,35.4,33.5,31.6,33.2,30.7]}`
	avg := gojsonq.New().FromString(json).From("temperatures").Avg()
	fmt.Printf("Average temperature: %.2f", avg) // 33.471428571428575
}

You can query your document using the various query methods such as Find, First, Nth, Pluck, Where, OrWhere, WhereIn, WhereStartsWith, WhereEndsWith, WhereContains, Sort, GroupBy, SortBy and so on. Also you can aggregate data after query using Avg, Count, Max, Min, Sum etc.

Find more query API in Wiki page

Bugs and Issues

If you encounter any bugs or issues, feel free to open an issue at github.

Also, you can shoot me an email to mailto:thedevsaddam@gmail.com for hugs or bugs.

Credit

Special thanks to Nahid Bin Azhar for the inspiration and guidance for the package. Thanks to Ahmed Shamim Hasan Shaon for his support from the very beginning.

Contributors

Contribution

If you are interested to make the package better please send pull requests or create an issue so that others can fix. Read the contribution guide here

License

The gojsonq is an open-source software licensed under the MIT License.

You can’t perform that action at this time.