Hallo zusammen,
ich nutze die Methode
/UI2/CL_JSON=>SERIALIZE, um aus einer Struktur ein JSON zu machen. Im Grundsatz funktioniert das sehr gut, auch unter Berücksichtigung von Untertabellen und geschachtelten Strukturen. Nur habe ich jetzt das Problem, dass eine Untertabelle unterschiedliche Datentypen pro Zeile übergeben soll. In JSON ist sowas problemlos abbildbar, aber eine interne ABAP-Tabelle kann nicht in einer Zeile einen anderen Datentyp für eine Spalte haben als in einer anderen.
Konkret will ich ein JSON erzeugen, das so aussieht:
{"custom_fields":[{"id":2133178,"value":"50048910"},{"id":2133245,"value":{"unit":"EUR","value":"1000.00"}}]}
Menschenlesbar dargestellt:
Code: Alles auswählen.
object {Struktur mit einer Spalte}
-custom_fields [Tabelle mit 2 Zeilen]
- 0 {Struktur mit zwei Spalten}
id: 2133178
value: 50048910
- 1 {Struktur mit zwei Spalten}
id: 2133245
value {Struktur mit zwei Spalten}
-unit: EUR
-value: 1000.00
In JSON ist sowas komplett legitim. Man kann aber in ABAP keine interne Tabelle dergestalt aufbauen, dass
value in der einen Zeile ein einfacher Zahlenwert und in einer anderen eine zweispaltige Unterstruktur ist.
Gibt es einen Weg, sowas dennoch mit dieser Klasse zu realisieren? Oder gibt es einen anderen Weg, solch JSON mit überschaubarem Aufwand (!) in ABAP aufzubauen?