Skip to content
Branch: master
Go to file
Code

Latest commit

Files

Permalink
Failed to load latest commit information.

README.md

JSON.awk

A practical JSON parser written in awk.

Introduction

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.

Features

  • 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

Supported Platforms

All OS platforms for which a POSIX awk implementation is available. Special cases:

Installing

Add files JSON.awk and optionally callbacks.awk to your project and follow the examples.

Usage 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

Applications

  • Opera-bookmarks.awk Extract (Chromium) Opera bookmarks and QuickDial thumbnails. Convert bookmark data to SQLite database and CSV file.

Projects known to use JSON.awk

  • KindleLauncher a.k.a. KUAL, an application launcher for the Kindle e-ink models, uses JSON.awk to parse menu descriptions.

License

This software is available under the following licenses:

  • MIT
  • Apache 2

Credits

  • 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.

You can’t perform that action at this time.