Using the following json document :
{"connections": {"7MXYADN-WDXFLSC-3JBG57R-JHZXXYP-ZROJDED-YFQYNCL-WTHPSOQ-KHOLXAP": {"address": "","at": "0001-01-01T00:00:00Z","clientVersion": "","connected": false,"crypto": "","inBytesTotal": 0,"isLocal": false,"outBytesTotal": 0,"paused": false },"QYMGEAI-FXM6I6W-FQ574FL-XABEKPV-VK5M42T-AQ7TERD-VVEJ2F7-SFSRYQG": {"address": "","at": "0001-01-01T00:00:00Z","clientVersion": "","connected": false,"crypto": "","inBytesTotal": 0,"isLocal": false,"outBytesTotal": 0,"paused": false } }}I would like to filter it using jq get a "connection.(value?)": "connection.(value?).connected" report using only command-line tools:
{"7MXYADN-WDXFLSC-3JBG57R-JHZXXYP-ZROJDED-YFQYNCL-WTHPSOQ-KHOLXAP": false,"QYMGEAI-FXM6I6W-FQ574FL-XABEKPV-VK5M42T-AQ7TERD-VVEJ2F7-SFSRYQG": false}The best results I catched is below. I can't find a better way to iterate twice those values correctly and to get rid of "id" & "status" keys.
$ jq '{ id: .connections | keys[] , status : .connections[].connected }'< demo.json {"id": "7MXYADN-WDXFLSC-3JBG57R-JHZXXYP-ZROJDED-YFQYNCL-WTHPSOQ-KHOLXAP","status": false}{"id": "7MXYADN-WDXFLSC-3JBG57R-JHZXXYP-ZROJDED-YFQYNCL-WTHPSOQ-KHOLXAP","status": false}{"id": "QYMGEAI-FXM6I6W-FQ574FL-XABEKPV-VK5M42T-AQ7TERD-VVEJ2F7-SFSRYQG","status": false}{"id": "QYMGEAI-FXM6I6W-FQ574FL-XABEKPV-VK5M42T-AQ7TERD-VVEJ2F7-SFSRYQG","status": false}I think I have to figure what is the (value?) thing and how to deal with.
Thank you