JEXL Script ile Dizi İşleme
Senaryo
Template modundaki #{...} bloğu içine çok satırlı JEXL Script yazılabilir. Bu yöntemle:
- JSON array elemanları üzerinde döngü kurulabilir.
- Toplama, sayaç ve filtreleme işlemleri yapılabilir.
if/elseile koşullu çıktı üretilebilir.
Body'den JSONPath ile çekilen array değerleri, JEXL bağlamına otomatik olarak liste olarak aktarılır; for (item : koleksiyon) söz dizimiyle gezinilebilir.
not
JEXL Script'te return kullanılmaz. Bloğun sonundaki son ifadenin değeri otomatik olarak döndürülür.
Örnek 1: Etiket Dizisini JSON Dizisine Dönüştürme
Aşağıdaki istek body'si verilsin:
{
"name": "Karabaş",
"tags": [
{"id": 5, "name": "aşılı"},
{"id": 12, "name": "mikroçipli"}
]
}
tags dizisindeki her nesneyi özel formatta bir JSON dizisine dönüştürme:
Şablon
#{
var out = '[';
var first = true;
for (item : body.$.tags) {
if (!first) { out = out + ','; }
out = out + '{"id":' + item.id + ',"label":"' + item.name + '"}';
first = false;
}
out + ']'
}
Satır Yapılandırması
| Alan | Değer |
|---|---|
| Oluşturma Modu | Template |
| Şablon | Yukarıdaki JEXL Script bloğu |
| Hedef | Özel Değişken → tagList |
| Varsayılan Değer | [] |