Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
github.com/ohler55/ojg
Optimized JSON for Go is a high performance parser with a variety of additional JSON tools. OjG is optimized to processing huge data sets where data does not necessarily conform to a fixed structure.
A basic Parse:
obj, err := oj.ParseString(`{
"a":[
{"x":1,"y":2,"z":3},
{"x":2,"y":4,"z":6}
]
}`)
Using JSONPath expressions:
x, err := jp.ParseString("a[?(@.x > 1)].y")
ys := x.Get(obj)
// returns [4]
The oj command (cmd/oj) uses JSON path for filtering and extracting JSON elements. It also includes sorting, reformatting, and colorizing options.
$ oj -m "(@.name == 'Pete')" myfile.json
More complete examples are available in the go docs for most functions. The example for Unmarshalling interfaces demonstrates a feature that allows interfaces to be marshalled and unmarshalled.
go get github.com/ohler55/ojg
go get github.com/ohler55/ojg/cmd/oj
or just import in your .go
files.
import (
"github.com/ohler55/ojg/alt"
"github.com/ohler55/ojg/asm"
"github.com/ohler55/ojg/gen"
"github.com/ohler55/ojg/jp"
"github.com/ohler55/ojg/oj"
"github.com/ohler55/ojg/sen"
)
To build and install the oj
application:
go install ./...
The oj
application can be installed with brew.
brew install oj
Higher numbers (longer bars) are better.
Parse string/[]byte
json.Unmarshal 55916 ns/op 17776 B/op 334 allocs/op
oj.Parse 39570 ns/op 18488 B/op 429 allocs/op
oj-reuse.Parse 17881 ns/op 5691 B/op 364 allocs/op
oj-reuse.Parse █████████████████████▉ 3.13
oj.Parse █████████▉ 1.41
json.Unmarshal ▓▓▓▓▓▓▓ 1.00
Parse io.Reader
json.Decode 63029 ns/op 32449 B/op 344 allocs/op
oj.ParseReader 34289 ns/op 22583 B/op 430 allocs/op
oj-reuse.ParseReader 25094 ns/op 9788 B/op 365 allocs/op
oj.TokenizeLoad 13610 ns/op 6072 B/op 157 allocs/op
oj.TokenizeLoad ████████████████████████████████▍ 4.63
oj-reuse.ParseReader █████████████████▌ 2.51
oj.ParseReader ████████████▊ 1.84
json.Decode ▓▓▓▓▓▓▓ 1.00
to JSON with indentation
json.Marshal 78762 ns/op 26978 B/op 352 allocs/op
oj.JSON 7662 ns/op 0 B/op 0 allocs/op
sen.Bytes 9053 ns/op 0 B/op 0 allocs/op
oj.JSON ███████████████████████████████████████████████████████████████████████▉ 10.28
sen.Bytes ████████████████████████████████████████████████████████████▉ 8.70
json.Marshal ▓▓▓▓▓▓▓ 1.00
See all benchmarks
See CHANGELOG.md
Documentation: https://pkg.go.dev/github.com/ohler55/ojg
GitHub repo: https://github.com/ohler55/ojg
JSONPath draft specification: https://datatracker.ietf.org/doc/draft-ietf-jsonpath-base
JSONPath Comparisons: https://cburgmer.github.io/json-path-comparison
Go Report Card: https://goreportcard.com/report/github.com/ohler55/ojg
Oj, a Ruby JSON parser: http://www.ohler.com/oj/doc/index.html also at https://github.com/ohler55/oj
OjC, a C JSON parser: http://www.ohler.com/ojc/doc/index.html also at https://github.com/ohler55/ojc
Fast XML parser and marshaller on GitHub: https://github.com/ohler55/ox
Agoo, a high performance Ruby web server supporting GraphQL on GitHub: https://github.com/ohler55/agoo
Agoo-C, a high performance C web server supporting GraphQL on GitHub: https://github.com/ohler55/agoo-c
develop
branch.FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.