Skip to content
jid on jq
Branch: master
Clone or download
Pull request Compare This branch is 31 commits ahead, 64 commits behind simeji:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/jiq Fix regression in jiq_test.go after 846f592 Jun 21, 2018
.gitignore
.gobuilder.yml configure gobuilder. Dec 6, 2016
LICENSE finish renaming to jiq. Dec 4, 2016
README.md Added page-up/page-down May 10, 2019
engine.go Added page-up/page-down May 10, 2019
engine_test.go.draft accept all jq cli arguments on jiq. Dec 4, 2016
jq.go accept all jq cli arguments on jiq. Dec 4, 2016
jq_test.go accept all jq cli arguments on jiq. Dec 4, 2016
query.go bring back autocomplete. Dec 5, 2016
query_test.go bring back autocomplete. Dec 5, 2016
screencast-packagejson.gif
screencast-repo.gif add gif screencasts. Mar 25, 2017
terminal.go support autocompleting complicated keys. Dec 6, 2016

README.md

jiq Mentioned in Awesome jq

It's jid with jq.

You can drill down interactively by using jq filtering queries.

jiq uses jq internally, and it requires you to have jq in your PATH.

If you prefer, there's an experimental, standalone, purely client-side web version of this on https://jq.alhur.es/jiq/.

Demo

screencast-repo.gif

screencast-packagejson.gif

Installation

go get github.com/fiatjaf/jiq/cmd/jiq

If you don't have jq installed, follow instructions at https://stedolan.github.io/jq/download/ and make sure to put it in your PATH.

Usage

Quick start

simple example

Execute the following command:

echo '{"aa":"2AA2","bb":{"aaa":[123,"cccc",[1,2]],"c":321}}'| jiq

Then jiq will be running. Now you can dig JSON data incrementally.

When you enter .bb.aaa[2], you will see the following.

[Filter]> .bb.aaa[2]
[
  1,
  2
]

If you press Enter now it will output

[
  1,
  2
]

and exit (if you want all the output in a single line you can either call jiq -c or pipe it into jq as jiq | jq -c .).

advanced usage examples

If you have ever used jq, you'll be familiar with these:

echo '{"economists": [{"id": 1, "name": "menger"}, {"id": 2, "name": "mises"}, {"name": "hayek", "id": 3}]}' | jiq

Now try writing .economists | "\(.[0].name), \(.[1].name) and \(.[2].name) are economists." or [.economists.[].id], or even .economists | map({key: "\(.id)", value: .name}) | from_entries

with curl

Sample for using RDAP data.

curl -s http://rdg.afilias.info/rdap/domain/example.info | jiq

command line arguments

-q : print the jq filter instead of the resulting filtered JSON to stdout (if you plan to use this with jq later)

Plus all the arguments jq accepts -- they will affect both the JSON output inside jiq and the output that is printed to stdout (beware that some may cause bugs).


traffic analytics for this repo:

Keymaps

key description
TAB / CTRL + I Show available items and choice them
CTRL + W Delete from the cursor to the start of the word
CTRL + U Delete whole query
CTRL + F / Right Arrow (➡️) Move cursor a character to the right
ALT + F Move one word forward
CTRL + B / Left Arrow (⬅️) Move cursor a character to the left
ALT + B Move one word backward
CTRL + A / Home To the first character of the 'Filter'
CTRL + E/ End To the end of the 'Filter'
CTRL + J / Down Arrow (⬇️) Scroll json buffer 1 line downwards
CTRL + K / Up Arrow (⬆️) Scroll json buffer 1 line upwards
CTRL + G Scroll json buffer to bottom
CTRL + T Scroll json buffer to top
CTRL + N / PageDown Scroll json buffer 'Page Down'
CTRL + P / PageUp Scroll json buffer 'Page Up'
ESC Hide a candidate box
You can’t perform that action at this time.