Description
GoJSONQ provides simple, elegant and fast ODM like API to access/query JSON document.
Let's have a first look:
```go
package main
import (
"fmt"
"github.com/thedevsaddam/gojsonq"
)
func main() {
jsonStr := `{"movies":[{"name":"Pirates of the Caribbean","sequels":[{"name":"The Curse of the Black Pearl","released":2003},{"name":"Dead Men Tell No Tales","released":2017}]}]}`
jq := gojsonq.New().JSONString(jsonStr)
name := jq.Find("movies.[0].name")
fmt.Println("name: ", name) // name: Pirates of the Caribbean
fsequel := jq.Reset().Find("movies.[0].sequels.[0].name")
fmt.Println("first sequel: ", fsequel) // first sequel: The Curse of the Black Pearl
}
```
Deeply nested JSON property can be grabbed easily!
gojsonq alternatives and similar packages
Based on the "Query Language" category.
Alternatively, view gojsonq alternatives based on common mentions on social networks and blogs.
-
goven
Goven (go-oven) is a go library that allows you to have a drop-in query language for your database schema.
Static code analysis for 29 languages.
Do you think we are missing an alternative of gojsonq or a related project?
Popular Comparisons
README
[gojsonq-logo](gojsonq.png)
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/v2
Usage
To use the package import it in your *.go
code
import "github.com/thedevsaddam/gojsonq/v2"
Let's see a quick example:
package main
import gojsonq "github.com/thedevsaddam/gojsonq/v2"
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:
package main
import (
"fmt"
gojsonq "github.com/thedevsaddam/gojsonq/v2"
)
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 [email protected] 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](CONTRIBUTING.md)
License
The gojsonq is an open-source software licensed under the [MIT License](LICENSE.md).
*Note that all licence references and agreements mentioned in the gojsonq README section above
are relevant to that project's source code only.