Hallo zusammen,
sehe ich das richtig, dass sich der ??-Operator beim Parsen von JSON und XML unterschiedlich verhält? Ist das so gewünscht?
Der folgende Code klappt im JSON-Parsing in einem APICall-Step.
<#if entry["Konditionale_Spalte"]??>${row.addCol("xxx",entry["Konditionale_Spalte"])}</#if>
Diese Logik in einem XMLReader läuft aber auf Fehler. Der ??-Operator ist immer wahr und das Hinzufügen der Spalte, wenn diese nicht vorhanden ist, wirft dann folgenden Fehler:
**Letzte Meldung:** *Fehler beim Parsing der 1. Datei XXX.xml. In den meisten Fällen ist die Datei leer, kaputt oder ist inhaltlich fehlerhaft, so dass Sie nicht geparst werden kann. | Fehler in XML-Parsing Code: (verantwortliche Code-Stelle: - Failed at: ${row.addCol("line_items_order_line_i... [in template "xmlToSpreadsheet" at line 10, column 48] ) | (No compatible overloaded variation was found; can't convert (unwrap) the 2nd argument to the desired Java type. The FTL type of the argument values were: string (wrapper: f.t.SimpleScalar), sequence+hash (wrapper: f.e.dom.NodeListModel). The matching overload was searched among these members: com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(String, String), com.synesty.csvconverter.internal.spreadsheet.RowImpl.addCol(com.synesty.csvconverter.api.mapping.FieldTypeDefinition...)*
Das ist sehr unintuitiv, dass sich die beiden Hashes unterschiedlich verhalten.
Könnt ihr das anpassen? Oder was wäre der korrekte Code beim XML-Parsing für so eine Prüfung bzw. im besten Fall ein allgemein gültiger Code?
Gruß
Gustav
