Popularity
5.1
Declining
Activity
4.0
Stable
191
6
23
Programming language: Go
License: GNU General Public License v3.0 or later
Tags:
Utilities
gojq alternatives and similar packages
Based on the "Utilities" category.
Alternatively, view gojq alternatives based on common mentions on social networks and blogs.
-
项目文档
🚀Vite+Vue3+Gin的开发基础平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下载、代码生成器【可AI辅助】、表单生成器和可配置的导入导出等开发必备功能。 -
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets -
Kopia
Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. -
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report. -
create-go-app
✨ A complete and self-contained solution for developers of any qualification to create a production-ready project with backend (Go), frontend (JavaScript, TypeScript) and deploy automation (Ansible, Docker) by running only one CLI command. -
EaseProbe
A simple, standalone, and lightweight tool that can do health/status checking, written in Go. -
filetype
Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature -
boilr
:zap: boilerplate template manager that generates files or directories from template repositories -
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -
go-underscore
Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness.
InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
Promo
www.influxdata.com
Do you think we are missing an alternative of gojq or a related project?
Popular Comparisons
README
gojq
JSON query in Golang.
Install
go get -u github.com/elgs/gojq
This library serves three purposes:
- makes parsing JSON configuration file much easier
- enables JSON expression evaluation
- reduces the pain of type assertion parsing JSON
Query from JSON Object
package main
import (
"fmt"
"github.com/elgs/gojq"
)
var jsonObj = `
{
"name": "sam",
"gender": "m",
"pet": null,
"skills": [
"Eating",
"Sleeping",
"Crawling"
],
"hello.world":true
}
`
func main() {
parser, err := gojq.NewStringQuery(jsonObj)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(parser.Query("name")) // sam <nil>
fmt.Println(parser.Query("gender")) // m <nil>
fmt.Println(parser.Query("skills.[1]")) // Sleeping <nil>
fmt.Println(parser.Query("hello")) // <nil> hello does not exist.
fmt.Println(parser.Query("pet")) // <nil> <nil>
fmt.Println(parser.Query(".")) // map[name:sam gender:m pet:<nil> skills:[Eating Sleeping Crawling] hello.world:true] <nil>
fmt.Println(parser.Query("'hello.world'")) // true <nil>
}
Query from JSON Array
package main
import (
"fmt"
"github.com/elgs/gojq"
)
var jsonArray = `
[
{
"name": "elgs",
"gender": "m",
"skills": [
"Golang",
"Java",
"C"
]
},
{
"name": "enny",
"gender": "f",
"skills": [
"IC",
"Electric design",
"Verification"
]
},
{
"name": "sam",
"gender": "m",
"pet": null,
"skills": [
"Eating",
"Sleeping",
"Crawling"
]
}
]
`
func main() {
parser, err := gojq.NewStringQuery(jsonArray)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(parser.Query("[0].name")) // elgs <nil>
fmt.Println(parser.Query("[1].gender")) // f <nil>
fmt.Println(parser.Query("[2].skills.[1]")) // Sleeping <nil>
fmt.Println(parser.Query("[2].hello")) // <nil> hello does not exist.
fmt.Println(parser.Query("[2].pet")) // <nil> <nil>
}
Nested Query
package main
import (
"fmt"
"github.com/elgs/gojq"
)
var jsonArray = `
[
{
"name": "elgs",
"gender": "m",
"skills": [
"Golang",
"Java",
"C"
]
},
{
"name": "enny",
"gender": "f",
"skills": [
"IC",
"Electric design",
"Verification"
]
},
{
"name": "sam",
"gender": "m",
"pet": null,
"skills": [
"Eating",
"Sleeping",
"Crawling"
]
}
]
`
func main() {
parser, err := gojq.NewStringQuery(jsonArray)
if err != nil {
fmt.Println(err)
return
}
samSkills, err := parser.Query("[2].skills")
fmt.Println(samSkills, err) //[Eating Sleeping Crawling] <nil>
samSkillParser := gojq.NewQuery(samSkills)
fmt.Println(samSkillParser.Query("[1]")) //Sleeping <nil>
}