ajson
ojg
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ajson
We haven't tracked posts mentioning ajson yet.
Tracking mentions began in Dec 2020.
ojg
-
Interactive Examples for Learning Jq
I found Jq to be difficult to use which is why Oj, https://github.com/ohler55/ojg is based on JSONPath. There still are a lot of options but it only takes a couple of help screens to figure out what the options are.
-
Building a high performance JSON parser
You might want to take a look at https://github.com/ohler55/ojg. It takes a different approach with a single pass parser. There are some performance benchmarks included on the README.md landing page.
-
A Journey building a fast JSON parser and full JSONPath
I like the "Simple Encoding Notation" (SEN) of the underlying library: https://github.com/ohler55/ojg/blob/develop/sen.md
-
The fastest tool for querying large JSON files is written in Python (benchmark)
For me OjG (https://github.com/ohler55/ojg) has been great. I regularly use it on files that can not be loaded into memory. The best JSON file format for multiple record is one JSON document per record all in the same file. OjG doesn't care if they are on different lines. It is fast (https://github.com/ohler55/compare-go-json) and uses a fairly complete JSONPath implementation for searches. Similar to jq but using JSONPath instead of a proprietary query language.
I am biased though as I wrote OjG to handle what other tools were not able to do.
-
FX: An interactive alternative to jq to process JSON
Another alternative is the oj app (ojg/cmd/oj) which is part of https://github.com/ohler55/ojg. It relies on JSONPath for extraction and manipulation of JSON.
- Go 1.17 Release Notes
-
OjG now has a tokenizer that is almost 10 times faster than json.Decode
Check out the SEN https://github.com/ohler55/ojg/blob/develop/sen.md format. You can have the last comma or leave all of them out and it still supports compliant JSON.
I promise to add more examples but in the mean time there are the test files. The one for Unmarshal is https://github.com/ohler55/ojg/blob/develop/oj/unmashall_test.go
What are some alternatives?
jsonparser - One of the fastest alternative JSON parser for Go that does not require schema
jsonic - All you need with JSON
json2go - Create go type representation from json
fastjson - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection
ask - A Go package that provides a simple way of accessing nested properties in maps and slices.
jettison - Highly configurable, fast JSON encoder for Go
ej - Write and read JSON from different sources in one line
json-to-proto.github.io - convert JSON to Protocol Buffers online in your browser instantly
jsoniter - A high-performance 100% compatible drop-in replacement of "encoding/json"