Jq

From wikinotes
Revision as of 15:25, 28 August 2021 by Will (talk | contribs) (→‎Comments)

parse json on the commandline.

Documentation

official docs https://stedolan.github.io/jq/manual/
homepage https://stedolan.github.io/jq/

Usage

Basics

# print w/ syntaxhighlighting
echo '{"one": 1, "two": {"a": "A"}}' | jq

# get key ["one"]
echo '{"one": 1, "two": {"a": "A"}}' | jq '.one'    # 1

# get nested-key ["two"]["a"]
echo '{"one": 1, "two": {"a": "A"}}' | jq '.two.a'  # "A"

# get list item at index 1
echo '["a", "b", "c"]' | jq '.[1]'                  # "b"

Comments

Neither json nor jq support comments.
You could pre-process the object to strip them, however.

If you'll never use # in keys/values you could do the following:

echo '{
  "one": 1, # foo bar baz
  # description of key
  "two": 2
}' \
  | sed 's/#.*$??' \
  | jq '.one'