Ansicht
Dokumentation

ABENABAP_ASJSON_CLASS_INSTANCES - ABAP ASJSON CLASS INSTANCES

ABENABAP_ASJSON_CLASS_INSTANCES - ABAP ASJSON CLASS INSTANCES

RFUMSV00 - Advance Return for Tax on Sales/Purchases   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Instanzen von Klassen

Um Instanzen von Klassen mit der Anweisung CALL TRANSFORMATION nach JSON zu transformieren oder aus JSON-Daten zu erzeugen, müssen ihre Klassen das Interface IF_SERIALIZABLE_OBJECT implementieren. Die Darstellung der Instanz einer Klasse (Objekt) als Objektkomponente des Objekts %heap erfolgt in der Form:

"key":{ "%type":"class",
        "%val":{ "part":{ "%classVersion":"...",
                          "name":...
                          ...
                        }
                 ...
               }
      }

Der Name key ist der Schlüssel, über den das Objekt referenziert wird. Der Wert von key ist selbst ein Objekt, dessen Objektkomponenten die Klasse und die Attribute des referenzierten ABAP-Objekts darstellen.

  • Der zeichenartige Wert class der Komponente %TYPE gibt die Klasse des Objekts an. Für class gilt das Gleiche wie für den Elementnamen class der asXML-Darstellung, wobei in asJSON der Namensraum, der in asXML angibt wo die Klasse definiert ist, immer aufgelöst vor dem Klassennamen aufgeführt wird.
  • Die Komponente %VAL stellt die Attributwerte des Objekts dar. Der Wert von %VAL ist selbst ein Objekt. Die Komponenten part sind Objekte, welche die Werte der Instanzattribute einzelner Objektteile enthalten. Für die Objektteile und ihre Namen part gilt das Gleiche wie für die Unterelemente part> der asXML-Darstellung.
  • Die Komponenten eines Objektteils part stellen die Werte der Instanzattribute des Objekts in ihrer kanonischen Darstellung unter ihrem Namen dar. Für die Namen gilt das Gleiche wie für die entsprechenden Elemente der asXML-Darstellung. Statische Attribute werden nicht berücksichtigt.
  • Eine optionale Komponente %classVersion eines Objektteils part enthält die Version der Klasse des Objektteils in zeichenartiger Darstellung. Für die Version der Klasse gilt das Gleiche wie für das Attribut classVersion der asXML-Darstellung.

Das Tag-Interface IF_SERIALIZABLE_OBJECT hat für JSON die gleiche Bedeutung wie für asXML. D.h. es legt fest, welche Attribute einer Klasse serialisiert werden und es können Hilfsmethoden implementiert werden, die ein angepasstes Verhalten bewirken (siehe das zugehörige Beispiel).

asJSON für Objektreferenzen






PERFORM Short Reference   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5181 Date: 20240523 Time: 170454     sap01-206 ( 67 ms )