Popularity
5.2
Stable
Activity
0.0
Stable
184
5
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鉴权,权限管理,动态路由,显隐可控组件,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器等开发必备功能。 -
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets -
xlsx
(No longer maintained!) Go (golang) library for reading and writing XLSX files. -
godotenv
A Go port of Ruby's dotenv library (Loads environment variables from `.env`.) -
go-funk
A modern Go utility library which provides helpers (map, find, contains, filter, ...) -
gorequest
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) -
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report. -
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. -
gojson
Automatically generate Go (golang) struct definitions from example JSON -
spinner
Go (golang) package with 90 configurable terminal spinner/progress indicators. -
create-go-app
✨ Create a new production-ready project with backend, frontend and deploy automation by running one CLI command! -
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 -
mole
CLI application to create ssh tunnels focused on resiliency and user experience. -
EaseProbe
A simple, standalone, and lightweight tool that can do health/status checking, written in Go. -
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. -
JobRunner
Framework for performing work asynchronously, outside of the request flow -
mimetype
A fast Golang library for media type and file extension detection, based on magic numbers
Build time-series-based applications quickly and at scale.
InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.
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>
}