Zapytania jq

Przekształcanie danych za pomocą jq, łącznie z funkcjami wbudowanymi

  1. Uruchomienie zapytania JSON (jq) na obiekcie
  2. Wbudowane funkcje JQ

Uruchomienie zapytania JSON (jq) na obiekcie

Przekształć obiekt, na przykład wartość innego pola, wyrażeniem 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

Od wersji 7.3.0 filtr jq działa najwyżej JQ_TIMEOUT_SECONDS (domyślnie 30) zanim zostanie zatrzymany, a jego wynik jest ograniczony do 64 MB. Dotyczy to fn.fnJq oraz wyrażenia jq w funkcjach REST, plików, poświadczeń i zapytań do bazy danych.


Wbudowane funkcje JQ

Wszystkie funkcje pobierające dane przyjmują zapytanie JSON (jq), czyli język do operacji na obiektach i tablicach danych.
Przy przetwarzaniu danych może być potrzebna zamiana bajtów na KB, MB lub GB albo zaokrąglanie liczb.
Do tego celu AnsibleForms zawiera kilka własnych funkcji jq:

  • fn2KB: bajty na KB
  • fn2MB: bajty na MB
  • fn2GB: bajty na GB
  • fnRound0: zaokrąglenie do 0 miejsc po przecinku
  • fnRound1: zaokrąglenie do 1 miejsca po przecinku
  • fnRound2: zaokrąglenie do 2 miejsc po przecinku
  • fnRound: zaokrąglenie do 2 miejsc po przecinku
fn.fnRestBasic('get','https://youruri','','CREDS',
  '[.records[] | {"Available Capacity":.storage_capacity.available | fn2GB | fnRound }]')
// note you need to pipe into the functions