Consultes jq

Transforma dades amb jq, incloses les funcions integrades

  1. Executar una consulta JSON (jq) sobre un objecte
  2. Funcions JQ integrades

Executar una consulta JSON (jq) sobre un objecte

Transforma un objecte, per exemple el valor d’un altre camp, amb una expressió jq:

fn.fnJq($(settings),'.mapping | keys')

// output : a full json object taken from another field called "settings", converted by jq

// fn.fnJq(object, jq)
// - object, for example read from rest or yaml file
// - jq-expression : a jq-expression (https://jqplay.org)
// - wrap the result in fn.fnSort to order it

A partir de la 7.3.0, un filtre jq s’executa com a màxim JQ_TIMEOUT_SECONDS (30 per defecte) abans d’aturar-se, i la seva sortida es limita a 64 MB. Això s’aplica a fn.fnJq i a l’expressió jq de les funcions de REST, de fitxer, de credencial i de consulta a base de dades.


Funcions JQ integrades

Totes les funcions que obtenen dades accepten una consulta JSON (jq), un llenguatge per manipular objectes i matrius de dades.
Quan manipules dades, potser necessites convertir bytes a KB, MB o GB, o arrodonir nombres.
Per a això, AnsibleForms inclou unes quantes funcions jq pròpies:

  • fn2KB: de bytes a KB
  • fn2MB: de bytes a MB
  • fn2GB: de bytes a GB
  • fnRound0: arrodoneix amb 0 decimals
  • fnRound1: arrodoneix amb 1 decimal
  • fnRound2: arrodoneix amb 2 decimals
  • fnRound: arrodoneix amb 2 decimals
fn.fnRestBasic('get','https://youruri','','CREDS',
  '[.records[] | {"Available Capacity":.storage_capacity.available | fn2GB | fnRound }]')
// note you need to pipe into the functions