Ich habe eine JSON, die ich mit GET-Anforderung erhalte. Der JSON enthält zwei Schlüssel, Text und Bilder . Bilder hat eine Liste von Objekten mit dem Namen des Bildes und dann das Bild.
Im Text „¤imagename|img¤“-Teile sind durch „imagename“-Bild zu ersetzen, von dem gefunden wurde Bilder .Unten ist ein Beispiel im assoziativen Array-Format
aa = Associative Array();
aa["text"] = "First line with no image
¤tile|img¤
text and ¤windmap|img¤ image
multiple ¤tile|img¤ ¤windmap|img¤ images
last line";
aa["images"] = Associative Array();
aa["images"]["tile"] = New Image("$SAMPLE_IMAGES/tile.jpg");
aa["images"]["windmap"] = New Image("$SAMPLE_IMAGES/windmap.png");
In der Originalanwendung hat der Text Bilder, die in den Text eingebettet sind, also sieht es ungefähr so aus:

Die Frage ist also: Wie baut man das mit JSL? Ich habe dazu eine rekursive Funktion geschrieben (unten), aber ich suche nach anderen Ideen / um anderen Skriptern eine Herausforderung zu bieten.
Meine aktuelle Lösung (die vorerst gut genug funktioniert):
Mehr sehen...
Mein erster Instinkt ist, dies zu tun:
Names Default To Here(1);
// example associative array
aa = Associative Array();
aa["text"] = "First line with no image
¤tile|img¤
text and ¤windmap|img¤ image
multiple ¤tile|img¤ ¤windmap|img¤ images
last line";
aa["images"] = Associative Array();
aa["images"]["tile"] = New Image("$SAMPLE_IMAGES/tile.jpg");
aa["images"]["windmap"] = New Image("$SAMPLE_IMAGES/windmap.png");
for each({imgn}, aa["images"]<<GET keys=""></GET>