JSON Element mit in XML reservierten Zeichen erstellen

  • Beitrag
    julianma
    Teilnehmer
    Hallo,

    ich möchte in Transconnect am Ende einen HTTP Request absetzen, der im Body ein JSON enthält mit folgender, beispielhafter Struktur:

    
    {
    
    "testparam1": "testvalue",
    "testparam2@test.data": "testvalue",
    "testparam3": "testvalue"
    }
    

    Problem ist an der Stelle hier das ‘@’, das nicht in XML Elementnamen verwendet werden darf. Dadurch kann ich auch keine vorherige XML Struktur aufbauen, die ich in JSON umwandeln und an den HTTP Adapter weitergeben kann.

    Die einzigen Möglichkeiten, die mir technisch eingefallen sind:

    • Das JSON entweder komplett selbst zusammenzubauen, was natürlich sehr umständlich und fehleranfällig ist
    • Nachträglich zum XML->JSON Konverter mittels suche&ersetze den Attributnamen auszutauschen

    Gibt es aus Ihrer Sicht hier noch mehr Möglichkeiten?

    0
    0
Ansicht von 1 Antwort (von insgesamt 1)
  • Antworten
    DBarnekow
    Moderator

    Hallo Julian,
    eine wirklich bessere Lösung, als von Ihnen bereits erwähnt, können wir momentan leider nicht bieten.

    Beim Konvertieren JSON -> XML im TC-Prozess mittels Formatkonverter wird “@” in “_-40” umgewandelt, sodass ein gültiges XML entsteht.
    (Hinweis:
    Diese Konvertierung (“@” > “_-40”) erfolgt nur bei Nutzung des JSON-Referenz-Konverters.
    Mit dem Staxon-Konverter bleibt das “@” erhalten, was im Ergebnis dann aber zu einem ungültigen XML-Dokument führt und entsprechende Fehler zur Folge hat.)

    Umgekehrt ist eine automatische Konvertierung (“_-40” > “@”) aber derzeit nicht vorgesehen.

    Ich würde es deshalb mit der nachträglichen Ersetzung versuchen, das sollte mit der ab XSLT 2.0 unterstützten “replace”-Funktion gut umsetzbar sein.

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