JSON2Spreadsheet >> MalformedJsonException trotz validem JSON Output

Hallo, ich brauche eure Hilfe.

Beim Ausführen eines JSON2Spreadsheet Calls erhalten wir:
Fehler beim Ausführen eines Freemarker Skripts. (Root Causes: JsonSyntaxException: MalformedJsonException:

Hier der Flow:

  1. API CALL mit JSON Output = response ok, JSON valide
  2. 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

Der JSON Output ist valide

Es wäre super, wenn mir weiterhelfen könnte.

Danke, Andre

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.
image

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/

Hallo, danke für die schnelle Antwort. Die Sonderzeichen waren aus Versehen durch Texteditor eingefügt worde.

Ich habe das Output json jetzt mit jsonformatter… validiert und erneut hochgeladen →

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.

Hallo, echt super, dass du mir hilfst.

Den Fehler bekomme ich leider trotzdem im JSON2Spreadsheet

Folgender Flow:

1. API CALL mit JSON Output (mit dem Output der valide ist)
Screenshot > Screenshot by Lightshot

transformation template:
<#assign row = target.addRow()>
<#list json as j >
<#assign row = target.addRow()>
${addColumns(row, j)}
</#list>

Wenn ich dein Transformation template hier nutze bekomme ich einen Fehler

2. JSON2Spreadsheet => JsonSyntaxException
screenshot > Screenshot by Lightshot

<#assign row = target.addRow()>
<#list json as j >
<#assign row = target.addRow()>
${addColumns(row, j)}
</#list>

Danke für deine Hilfe. Ich habe das Problem gefunden.

1 „Gefällt mir“

Super. Nur der Vollständigkeit halber:

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.

Folgende Seiten sind dazu relevant:

Ja genau ! Das habe ich jetzt auch gemerkt.
Dein Vorschlag mit der Reduktion (Testflow mit Datei üben ) hat mich auf die Spur gebracht.

Vielen Dank dafür.

Gruß, Andre