jq tricks
Get values from array of maps:
cat << EOF > s
[
{ "id": "144", "name": "foo"},
{ "id": "628", "name": "bar"}
]
EOF
#
cat s | jq -r '.[] | "\(.name) \(.id)"'
#
foo 144
bar 628
Show map
cat << EOF > s
{
"id":"2222222",
"release":"1.23",
"hostname":"srv-1"
}
EOF
#
cat s | jq 'to_entries[] | "\(.key): \(.value)"' | tr -d '"'
#
id: 2222222
release: 1.23
hostname: srv-1
Return empty string, if value not found
cat << EOF > s
{
"name": "aaa",
"host": "server",
"id": "kkkk"
}
EOF
# don't return 'null'
cat s | jq ".header // empty"
#
Search by field value