Jq json file manipulation: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
viewing the top level structure for all objects | viewing the top level structure for all objects | ||
<pre> | |||
jq '[path(..)|map(if type=="number" then "[]" else tostring end)|join(".")|split(".[]")|join("[]")]|unique|map("."+.)|.[]' first10-10.json | |||
</pre> | |||
<pre> | |||
jq -c 'path(..)|[.[]|tostring]|join("/")' first10-10.json | |||
</pre> | |||
<pre> | |||
jq 'path(recurse(if type|. == "array" or . =="object" then .[] else empty end))' first10-10.json | |||
</pre> | |||
<pre> | <pre> | ||
jq '.[]|path(..)' first10-10.json | jq '.[]|path(..)' first10-10.json | ||
Line 6: | Line 15: | ||
jq '.[]|keys' filename | jq '.[]|keys' filename | ||
</pre> | </pre> | ||
Alternatively show_struct.py from https://github.com/ilyash/show-struct shows the structure with a description and the filled in object. | |||
viewing the top level structure for the first object | viewing the top level structure for the first object | ||
<pre> | <pre> |
Latest revision as of 10:37, 17 November 2017
viewing the top level structure for all objects
jq '[path(..)|map(if type=="number" then "[]" else tostring end)|join(".")|split(".[]")|join("[]")]|unique|map("."+.)|.[]' first10-10.json
jq -c 'path(..)|[.[]|tostring]|join("/")' first10-10.json
jq 'path(recurse(if type|. == "array" or . =="object" then .[] else empty end))' first10-10.json
jq '.[]|path(..)' first10-10.json
jq '.[]|keys' filename
Alternatively show_struct.py from https://github.com/ilyash/show-struct shows the structure with a description and the filled in object.
viewing the top level structure for the first object
jq '.[0]|keys' filename
viewing the top level structure for the third object
jq '.[2]|keys' filename
viewing the first key for the first object
jq '.[0] | keys | .[0] filename
Getting the subkeys (when you know there are subkeys)
jq '.[0].data|keys' filename
selecting a specific item (from the top level)
jq '.[] | select(.id=bla)' filename
getting specific data from a subkey
jq '.[0].id' filename jq '.[].data.category.name' filename | sort -u
http://blog.librato.com/posts/jq-json