Beim Ausführen eines JSON2Spreadsheet Calls erhalten wir:
Fehler beim Ausführen eines Freemarker Skripts. (Root Causes: JsonSyntaxException: MalformedJsonException:
Hier der Flow:
API CALL mit JSON Output = response ok, JSON valide
JSON2Spreadsheet = JsonSyntaxException
Fehlermeldung
Fehler beim Ausführen eines Freemarker Skripts. (Root Causes: JsonSyntaxException: MalformedJsonException: Expected literal value near he Green Innovator"},{„timestamp“:„2022- MalformedJsonException: Expected literal value near he Green Innovator“},{„timestamp“:"2022-)
TEMPLATE_ERROR_MODELEXCEPTION
Hmm, also diese json Datei in der Dropbox ist definitiv nicht valide. Da stehen seltsame Dinge wie „rtf1“ usw. drin, wenn man das mal im Texteditor anschaut.
Kommt das so direkt von der API oder wurde das nochmal ein Word-Dokument kopiert und dann irgendwie per CopyPaste in die .json Datei? Gern mal in einen der vielen JSON-Validierungstools packen wie z.B. https://jsonformatter.curiousconcept.com/
Sieht besser aus. Damit sollte der obige Fehler nicht kommen.
Die Produkte sind etwas ungewöhnlich geschachtelt. Man muss erstmal das erste Element holen und dann davon das „products“ Object, welches auch wieder ein Array ist.
Mit folgendem ParsingCode sollte man erstmal etwas sehen:
<#assign row = target.addRow()>
<#list json[0]["products"] as p >
<#assign row = target.addRow()>
${addColumns(row, p)}
</#list>
Man kan mit einem Testflow und der Datei erstmal üben (ohne API).
Dazu kann man das JSON in einen StringToFile Step packen und danach einen JSONReader Step.
den JSON2Spreadsheet brauchst du beim APICall nicht. Der APICall hat den quasi schon eingebaut. Du musst dem APICall nur sagen, ob die Response JSON oder XML ist.