Nicolas Williams 5bfb9781f7 Add Streaming parser (--stream)
Streaming means that outputs are produced as soon as possible.  With the
`foreach` syntax one can write programs which reduce portions of the
streaming parse of a large input (reduce into proper JSON values, for
example), and discard the rest, processing incrementally.

This:

    $ jq -c --stream .

should produce the same output as this:

    $ jq -c '. as $dot | path(..) as $p | $dot | getpath($p) | [$p,.]'

The output of `jq --stream .` should be a sequence of`[[<path>],<leaf>]`
and `[[<path>]]` values.  The latter indicate that the array/object at
that path ended.

Scalars and empty arrays and objects are leaf values for this purpose.

For example, a truncated input produces a path as soon as possible, then
later the error:

    $ printf '[0,\n'|./jq -c --stream .
    [[0],0]
    parse error: Unfinished JSON term at EOF at line 3, column 0
    $
2014-12-26 23:05:56 -06:00
2014-12-26 23:05:56 -06:00
2014-08-14 03:31:25 -05:00
2014-12-26 23:05:56 -06:00
2014-07-30 13:19:46 -05:00
2014-12-26 23:05:56 -06:00
2013-12-04 18:21:41 -06:00
2014-06-30 23:41:20 -05:00
2014-12-26 23:05:20 -06:00
2014-12-26 23:05:56 -06:00
2014-08-06 12:26:34 -04:00
2014-12-26 23:05:56 -06:00
2014-12-12 17:05:16 -06:00
2014-12-26 23:05:56 -06:00
2013-12-27 12:49:15 -06:00
2013-06-21 11:57:12 -05:00
2014-12-26 23:05:56 -06:00
2013-06-22 13:34:24 +01:00
2014-12-26 23:05:56 -06:00
2014-12-26 23:05:56 -06:00
2014-02-21 10:51:16 -06:00
2014-12-24 02:31:51 -06:00
2014-12-26 23:05:56 -06:00
2014-06-16 15:29:48 -05:00
2014-11-29 15:24:43 -06:00
2014-07-22 22:51:11 -05:00
2014-07-22 22:51:11 -05:00

jq

jq is a command-line JSON processor.

If you want to learn to use jq, read the documentation at http://stedolan.github.io/jq. This documentation is generated from the docs/ folder of this repository. You can also try it online at jqplay.org.

If you want to hack on jq, feel free, but be warned that its internals are not well-documented at the moment. Bring a hard hat and a shovel. Also, read the wiki: http://github.com/stedolan/jq/wiki

If you're building directly from the latest git, you'll need flex, bison, libtool, make, autoconf and libonig installed. To build, run:

autoreconf -i
./configure
make -j8
make check

After make finishes, you'll be able to use ./jq. You can also install it using:

sudo make install

If you're not using the latest git version but instead building a released tarball (available on the website), then you won't need to run autoreconf (and shouldn't), and you won't need flex or bison.

To cross-compile for OS X and Windows, see docs/Rakefile's build task and scripts/crosscompile. You'll need a cross-compilation environment, such as Mingw for cross-compiling for Windows.

S
Description
Command-line JSON processor
jq
Readme
24 MiB
Languages
C 79%
M4 6.4%
Shell 5.8%
Yacc 3.3%
jq 1.6%
Other 3.9%