Frage: Konverter – “JSON zu XML” – Datentyp/-wert beibehalten

  • Beitrag
    JulianStr
    Teilnehmer
    Hallo!

    Ich bin bei der Verwendung der Konverter

    • JSON -> XML und
    • XML -> JSON

    auf das Problem gestoßen, dass während der Konvertierungsschritte JSON -> XML und im Anschluss XML -> JSON im JSON-Output manche Feldtypen geändert wurden, obwohl ich diese nicht angefasst habe.
    <h2>Beispiele</h2>
    Ich habe das JSON mit beiden Transconnect-Mechanismen, die der JSON -> XML – Konverter anbietet durchgespielt
    <h3>Beispiel mit Staxon</h3>
    Eingang – JSON

    [{
    "Gruppe": "",
    "Materialgruppe": null,
    "Identnummer": "100100"
    }]

    Resultat – Konvertierung zu XML

    <!-- Konten ITEM erzeugt durch Staxon -->
    <ITEM>
    <Gruppe></Gruppe>
    <Materialgruppe></Materialgruppe>
    <Identnummer>100100</Identnummer>
    </ITEM>

    <p data-bidi-marker=”true”>Resultat – Konvertierung XML zu JSON
    </p>

    [{
    "Gruppe" : null,
    "Materialgruppe" : null,
    "Identnummer" : 100100
    }]

    <p data-bidi-marker=”true”>Fazit</p>

    • Datentyp für Identnummer ändert sich von String zu Zahl
    • Wert für Gruppe ändert sich vom leerer String zu NULL

    <h3>Beispiel mit JSON Referenz</h3>
    Eingang – JSON

    [{
    "Gruppe": "",
    "Materialgruppe": null,
    "Identnummer": "100100"
    }]

    Resultat – Konvertierung zu XML

    <!-- Konten array erzeugt durch JSON Referenz-->
    <array>
    <Gruppe></Gruppe>
    <Materialgruppe>null</Materialgruppe>
    <Identnummer>100100</Identnummer>
    </array>

    <p data-bidi-marker=”true”>Resultat – Konvertierung XML zu JSON
    </p>

    [{ 
    "Gruppe": "",
    "Materialgruppe": "null",
    "Identnummer": 100100
    }]

    <p data-bidi-marker=”true”>Fazit</p>

    • Datentyp für Identnummer ändert sich von String zu Zahl
    • Wert für Materialgruppe ändert sich von NULL zu einem String mit “null”

    <h2>Frage / Wunsch</h2>

    • zu Identnummer – Problem: Hier ist klar, dass man bei der automatischen Erkennug wenig Chancen hat den Datentyp beizubehalten, aber gibt es eine
      • kurzfriste Lösung mittels eines Workarounds?
      • langfristige Lösung in dem man den Konverter eine Art Mapping zur Verfügung stellt?
    • zu Materialgruppe:
      • kurzfristige Lösung für mich wäre hier in JSON-Text via Replace das “null” durch null zu ersetzen. Gibts evtl. noch eine andere Lösung?
      • langfristige Lösung für mich: der Konverter interpretiert die “Materialgruppe”: null (JSON) als <Materialgruppe xsi:nil=”true”/> (XML) .

     

    Viele Grüße,

    Julian

    0
    0
Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Antworten
    Da eine automatische Konvertierung immer Einschränkungen unterliegt, wäre ein Workaround, das JSON-Dokument mittels XSLT direkt zu erzeugen.

    Vielen Dank auch für Ihren Verbesserungsvorschlag betreffs xsi:nil. Wir haben ihn als Feature-Request aufgenommen. Evtl. lässt sich mit xsi:type auch der Datentyp erhalten.

    Ihr TRANSCONNECT-Team

    0
    0
    Die Version 2.3.5 ab Build 15863 wird im Prozesseditor eine neue Option bei der Konfiguration des JSON->XML Konverters erhalten, mit der gesteuert werden kann, ob null-Werte und Datentypen in das XML übernommen werden.

    Ihr TRANSCONNECT Team

    0
    0
Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.