JSON-Datei zerlegen

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
2 Beiträge Seite 1 von 1
2 Beiträge Seite 1 von 1

JSON-Datei zerlegen

Beitrag von Walda86 (ForumUser / 7 / 0 / 0 ) » 5. Dez 2018 13:21

Hallo zusammen,

ich möchte gerne eine JSON-Datei zerlegen, jedoch bekomme ich dies leider nicht hin.

Mein JSON-String, den ich aus der Datei einlese und dann in einen String umwandle, sieht beispielsweise wie folgt aus:
{"value":{"0.VALUE1.VAR0":1.55555616E8},"time":{"0.VALUE1.VAR0":1543998498247000000},"valueType":{}}

Nun möchte ich in meiner Struktur folgende Werte haben:

value = 1.55555616E8
time = 1543998498247000000
valuetype = " ".

Die Struktur ist im Report wie folgt definiert:

TYPES:
BEGIN OF ty_values,
value TYPE string,
time TYPE string,
valueType type string,
END OF ty_values.

DATA: ls_test TYPE ty_values.

Nachdem ich die JSON-Datei eingelesen und umgewandelt habe, möchte ich nun mit der Methode deserialize aus der Klasse /ui2/cl_json füllen:

/ui2/cl_json=>deserialize(
EXPORTING
json = lv_json_stri
assoc_arrays = 'X'
assoc_arrays_opt = 'X'
CHANGING
data = ls_test ).

Leider ist meine Struktur nach dem Methodenaufruf leer.

Was mache ich hier falsch?

Mir ist bewusst, das der Fett-markierte Teil dieses Strings Probleme macht:
{"value":{"0.VALUE1.VAR0":1.55555616E8},"time":{"0.VALUE1.VAR0":1543998498247000000},"valueType":{}}

Was kann ich dir tun, um das Problem zu lösen?

Es wäre top, wenn jemand eine Lösung wüsste!

Vielen Dank im Voraus!

Grüße,
Walda86


Re: JSON-Datei zerlegen

Beitrag von fr-g (ForumUser / 45 / 4 / 12 ) » 5. Dez 2018 16:28

Ich hab das gerade zum ersten Mal probiert, aber mir schien die Struktur doch etwas tiefer als mit der ABAP-Struktur abgebildet.
So in etwa müsste es gehen (wegen neuer Syntax und co bin ich leider gerade systemmäßig etwas eingeschränkt):

Code: Alles auswählen.

TYPES: BEGIN OF ty_val,
         val TYPE string,
       END OF ty_val.

TYPES: BEGIN OF ty_values,
         value     TYPE ty_val,
         time      TYPE ty_val,
         valuetype TYPE ty_val,
       END OF ty_values.

DATA lv_json TYPE string VALUE '{"value":{"0.VALUE1.VAR0":1.55555616E8},"time":{"0.VALUE1.VAR0":1543998498247000000},"valueType":{}}'.
DATA lt_map TYPE /ui2/cl_json=>name_mappings.
DATA ls_map LIKE LINE OF lt_map.
DATA ls_test TYPE ty_values.

* den Key mappen
ls_map-abap = 'VAL'.
ls_map-json = '0.VALUE1.VAR0'.
INSERT ls_map INTO TABLE lt_map.

/ui2/cl_json=>deserialize(
  EXPORTING
    json = lv_json
    name_mappings = lt_map
  CHANGING
    data = ls_test ).

Seite 1 von 1

Aktuelle Forenbeiträge

Datenquelle einer Query ändern
vor 20 Stunden von Level83 3 / 65
Spaltennummer-Umwandlung Excel.
Gestern von il.ost 7 / 168
Black out im Bereich Objekterzeugung bei Vererbung gelöst
Gestern von Thomas R. 4 / 101

Unbeantwortete Forenbeiträge

Transaktion VL06 Verteilung ausgehender Lieferungen
vor 2 Tagen von SAP_ENTWICKLER 1 / 53
FuBa EXIT_SAPLVEDC_003 S/4 1809
vor 4 Tagen von SAP_ENTWICKLER 1 / 87
CDS VIEW mit BOPF Framework update
vor einer Woche von Abapanfänger 1 / 85
SAP Document Builder: Dokumenterzeugung
vor einer Woche von robin.heidrich 1 / 202
Lohnsteuerbescheinigung
vor einer Woche von kaim77 1 / 121