json - How to use `jq` to obtain the keys -


my json looks :

{   "20160522201409-jobsv1-1": {     "vmstatedisplayname": "ready",     "servers": {       "20160522201409 jobs_v1 1": {         "serverstatedisplayname": "ready",         "creationdate": "2016-05-22t20:14:22.000+0000",         "state": "ready",         "provisionstatus": "pending",         "serverrole": "role",         "servertype": "server",         "servername": "20160522201409 jobs_v1 1",         "serverid": 2902       }     },     "isadminnode": true,     "creationdate": "2016-05-22t20:14:23.000+0000",     "totalstorage": 15360,     "shapeid": "ot1",     "state": "ready",     "vmid": 4353,     "hostname": "20160522201409-jobsv1-1",     "label": "20160522201409 jobs_v1 admin_server 1",     "ipaddress": "10.252.159.39",     "publicipaddress": "10.252.159.39",     "usagetype": "admin_server",     "role": "admin_server",     "componenttype": "jobs_v1"   } } 

my key keeps changing time time. example 20160522201409-jobsv1-1 may else tomorrow. may more 1 such entry in json payload.

i want echo $keys , trying using jq.

things have tried : | jq .keys command use frequently.

is there jq command display primary keys in json?

i care hostname field. , extract out. know how using grep not clean approach.

you can use: keys:

% jq 'keys' my.json [   "20160522201409-jobsv1-1" ] 

and first:

% jq -r 'keys[0]' my.json 20160522201409-jobsv1-1 

-r raw output:

--raw-output / -r: option, if filter’s result string written directly standard output rather being formatted json string quotes. can useful making jq filters talk non-json-based systems.

source

if want known value below unknown property, eg xxx.hostname:

% jq -r '.[].hostname' my.json 20160522201409-jobsv1-1 

Popular posts from this blog

php - How should I create my API for mobile applications (Needs Authentication) -

5 Reasons to Blog Anonymously (and 5 Reasons Not To)

Google AdWords and AdSense - A Dynamic Small Business Marketing Duo