= json
{{tag>development addendum}}
== install (raspberry)
cd /tmp
wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz
tar xfvz jq-1.5.tar.gz
cd jq-1.5
./configure && make && sudo make install
== tutorials
* [[https://linuxhint.com/bash_jq_command/]]
== jq (shell)
=== selección
{
"ACTION": "domain.list",
"DATA": [
{
"TYPE": "slave",
"AXFR_IPS": "none",
"DOMAIN": "domain1.com",
"TTL_SEC": 0,
"SOA_EMAIL": "",
"DOMAINID": 11111,
"DESCRIPTION": "",
"EXPIRE_SEC": 0,
"RETRY_SEC": 0,
"STATUS": 1,
"LPM_DISPLAYGROUP": "",
"REFRESH_SEC": 0
},
{
"TYPE": "slave",
"AXFR_IPS": "none",
"DOMAIN": "domain2.net",
"TTL_SEC": 0,
"SOA_EMAIL": "",
"DOMAINID": 22222,
"DESCRIPTION": "",
"EXPIRE_SEC": 0,
"RETRY_SEC": 0,
"STATUS": 1,
"LPM_DISPLAYGROUP": "",
"REFRESH_SEC": 0
},
{
"TYPE": "slave",
"AXFR_IPS": "none",
"DOMAIN": "domain3",
"TTL_SEC": 0,
"SOA_EMAIL": "",
"DOMAINID": 33333,
"DESCRIPTION": "",
"EXPIRE_SEC": 0,
"RETRY_SEC": 0,
"STATUS": 1,
"LPM_DISPLAYGROUP": "",
"REFRESH_SEC": 0
},
],
"ERRORARRAY": []
}
| jq '.DATA | .[2]'
| jq '.DATA | .[].DOMAINDID'
| jq '.DATA[] | select(.DOMAIN == "domain2") | .DOMAINID'
/via: [[https://github.com/stedolan/jq/issues/370]]
=== script
sample='[{"name":"foo"},{"name":"bar"}]'
for row in $(echo "${sample}" | jq -r '.[] | @base64'); do
_jq() {
echo ${row} | base64 --decode | jq -r ${1}
}
echo $(_jq '.name')
done
/via: [[https://starkandwayne.com/blog/bash-for-loop-over-json-array-using-jq/]]