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
      Torsten Uhr
      Betrachter
        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
        Torsten Uhr
        Betrachter
          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.