A practical JSON parser written in awk.
JSON.awk is a self-contained, single-file program with no external dependencies. It is similar to JSON.sh, a JSON parser written in Bash -- retrieved on 2013-03-13 to form the basis for JSON.awk. Since then, the two projects have taken separate paths, so you will not find all of JSON.sh features in JSON.awk, and viceversa.
- Single file without external dependencies
- Can parse one or multiple input files within a single invocation
- Callback interface (awk) to hook into parser and output events
- Library of practical callbacks (optional)
- Capture invalid JSON input for further processing
- JSON.sh compatible (as of 2013-03-13) default output format
- Written for POSIX awk; does not require GNU gawk extensions; works with mawk 1.3.4 20150503 and higher (some limitations)
- Choice of MIT or Apache 2 license
All OS platforms for which a POSIX awk implementation is available. Special cases:
Add files JSON.awk and optionally callbacks.awk to your project and follow the examples.
For full instructions please read the docs. If you use mawk please read FAQs 6 and 7.
Passing file names as command arguments:
awk -f JSON.awk file1.json [file2.json...]
awk -f JSON.awk - < file.json
cat file.json | awk -f JSON.awk -
Passing file names on stdin:
echo -e "file1.json\nfile2.json" | awk -f JSON.awk
Using callbacks to build a custom application (FAQ 5):
awk -f your-callbacks.awk -f JSON.awk file.json
- Opera-bookmarks.awk Extract (Chromium) Opera bookmarks and QuickDial thumbnails. Convert bookmark data to SQLite database and CSV file.
- KindleLauncher a.k.a. KUAL, an application launcher for the Kindle e-ink models, uses JSON.awk to parse menu descriptions.
This software is available under the following licenses:
- MIT
- Apache 2
-
JSON.sh's source code, retrieved on 2013-03-13, more than inspired version 1.0 of JSON.awk; without JSON.sh this project would not exist.
-
gron for inspiration leading to library module js-dot-path.awk, and for some test files.