The thing that I find myself wanting, which is lacking in both jq and zq afaik, is interactive exploration. I want to move around in a large JSON file, narrow my context to the portion I'm interested in, and do specialized queries and transformations on just the data I care about.

I wrote a tool to do this -- https://github.com/hotsphink/sfink-tools/blob/master/bin/jso... -- but I do not recommend it to anyone other than as perhaps a source of inspiration. It's slow and buggy, the syntax is cryptic and just matches whatever I came up with when I had a new need, etc. It probably wouldn't exist if I had heard of jq sooner.

But for what it does, it's awesome. I can do things like:

  % json somefile.json
  > ls
    0/
    1/
    2/
  > cd 0
  > ls
    info/
    files/
    timings/
    version
  > cat version
  1.2b
  > cat timings/*/mean
  timings/firstPaint/mean = 51
  timings/loadEventEnd/mean = 103
  timings/timeToContentfulPaint/mean = 68
  timings/timeToDomContentFlushed/mean = 67
  timings/timeToFirstInteractive/mean = 658
  timings/ttfb/mean = 6
There are commands for searching, modifying data, aggregating, etc., but those would be better done in a more principled, full-featured syntax like jq's.

I see ijq, and it looks really nice. But it doesn't have the context and restriction of focus that I'm looking for.

I really like fx (https://github.com/antonmedv/fx) for interactive stuff. It does exactly what I think you want. You can expand individual fields and explore the schema.

However, I really do like jq for queries and scripting, so I keep both around.