Jq: Difference between revisions
From wikinotes
Line 34: | Line 34: | ||
<blockquote> | <blockquote> | ||
Neither [[json]] nor <code>jq</code> support comments.<br> | Neither [[json]] nor <code>jq</code> support comments.<br> | ||
It's hacky, but you could pre-process the object to strip them, however. | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
echo '{ | echo '{ | ||
" | // syntax-highlight as javascript | ||
" | "local_path": "/home/you", // your home dir | ||
// a network path | |||
"netwk_path": "//10.1.0.5/music" | |||
}' \ | }' \ | ||
| sed 's/ | | sed 's?//[^"]*$??' | ||
| jq '.one' | | jq '.one' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Comments --> | </blockquote><!-- Comments --> | ||
</blockquote><!-- Usage --> | </blockquote><!-- Usage --> |
Revision as of 15:31, 28 August 2021
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.
It's hacky, but you could pre-process the object to strip them, however.echo '{ // syntax-highlight as javascript "local_path": "/home/you", // your home dir // a network path "netwk_path": "//10.1.0.5/music" }' \ | sed 's?//[^"]*$??' | jq '.one'