Consultas jq

Transforma datos con jq, incluidas las funciones integradas

  1. Ejecutar una consulta JSON (jq) sobre un objeto
  2. Funciones jq integradas

Ejecutar una consulta JSON (jq) sobre un objeto

Transforma un objeto, por ejemplo el valor de otro campo, con una expresión 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

Desde 7.3.0, un filtro jq se ejecuta como máximo JQ_TIMEOUT_SECONDS (30 por defecto) antes de detenerse, y su salida se limita a 64 MB. Esto se aplica a fn.fnJq y a la expresión jq de las funciones de REST, archivo, credencial y consulta a base de datos.


Funciones jq integradas

Todas las funciones que obtienen datos aceptan una consulta JSON (jq), un lenguaje para manipular objetos y arrays de datos.
Al manipular datos, puede que necesites convertir bytes a KB, MB o GB, o redondear números.
Para ello, AnsibleForms incluye algunas funciones jq propias:

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