JSON-Datei zerlegen


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

JSON-Datei zerlegen

Beitragvon Walda86 » 05.12.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
Walda86
ForumUser
 
Beiträge: 7
Registriert: 17.02.2017, 09:32
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: JSON-Datei zerlegen

Beitragvon fr-g » 05.12.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 ).
fr-g
ForumUser
 
Beiträge: 40
Registriert: 26.05.2017, 15:25
Dank erhalten: 12 mal
Ich bin: Entwickler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
s4hana-cloud
vor 8 Stunden von sap_inchen 1 Antw.
500 Internal Server Error
vor 17 Stunden von zzcpak 1 Antw.
Dokumentinformationen lesen vom DVS
vor 18 Stunden von Tron 4 Antw.
Tabs innerhalb von Tabs
vor 20 Stunden von ewx 4 Antw.
Fakturierungsplan in Kontrakten ändern
vor 15 Stunden von DeathAndPain 1 Antw.

  Ähnliche Beiträge beta
Speichern Datei auf dem Server
18.11.2004, 11:42 von Gast 2 Antw.
String in txt Datei schreiben.
07.05.2008, 09:48 von JHM 11 Antw.
Excel-Datei einlesen
01.11.2010, 20:05 von Zubasa 19 Antw.
XML Datei in ABAP einlesen
31.03.2011, 13:43 von casman 2 Antw.
Excel-Datei als PDF speichern
29.07.2013, 09:24 von klaus1704 4 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder