Montag, 8. Juni 2015

Json Processing in der BASH mit JQ

JSON ist nicht das schönste Datenformat, so gibt es keine Kommentare in JSON. Aber zur Zeit braucht man JSON es an vielen Stellen, z.B. um Elastic Search Abfragen zu stellen bzw. die Elastic Search Results auszuwerten. Wer mit der Bash arbeitet wird JQ als Anfragewerkzeug zu schätzen wissen. Ein immer wieder auftauchendes Problem sind Keys in JSON, die böse Zeichen enthalten wie / oder - (Slash, Minus) die bei Abfragen via JQ escaped werden müssen.

jq .hits.hits[3]._source.http-rc result2.0.json 
error: rc is not defined

.hits.hits[3]._source.http-rc                           1 compile error

So geht es richtig:

jq '.hits.hits[3]._source["http-rc"]' result2.0.json 
"200"


Was lernen wir daraus? Bezeichner, Keys, Namen im Camel Case setzen! Das spart viel Zeit, bei deinen Kollegen.

Hier als Ergänzung der Link zu Googles JSON Style Guide: http://google-styleguide.googlecode.com/svn/trunk/jsoncstyleguide.xml#Property_Name_Format

Keine Kommentare:

Kommentar veröffentlichen