JSON parsen in Node-Table

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

JSON parsen in Node-Table

Beitrag von ralf.wenzel (Top Expert / 3570 / 167 / 244 ) »
Moin,

ich stehe vor der Aufgabe, einen JSON-String Parsen zu müssen. Am liebsten wäre mir etwas, wo ich den String reinwerfe und eine Tabelle rauskäme

Feldname | Feldinhalt

Gibt es sowas? Mit /UI2/CL_JSON kriege ich das irgendwie nicht hin.


Ralf


Re: JSON parsen in Node-Table

Beitrag von DeathAndPain (Top Expert / 1533 / 177 / 340 ) »
Genau damit mache ich es aber. In meinem Programm steht da einfach:

Code: Alles auswählen.

/UI2/CL_JSON=>DESERIALIZE( EXPORTING JSON = LV_DATA
                           CHANGING  DATA = AUSGABE ).
Funktioniert wunderbar seit Jahren.

Pferdefuß: Die Struktur oder Tabelle AUSGABE muss so typisiert sein wie die Felder in dem JSON. Es gibt keine Fehler, wenn dem nicht so ist, aber es kommen halt nur die Werte aus dem JSON in der Tabelle an, die in Deiner Struktur bzw. Tabelle mit identischem Namen existieren. JSONs können auch Untertabellen enthalten; logischerweise musst Du in AUSGABE an den entsprechenden Stellen dann auch welche bieten.

Zweiter Pferdefuß: Du bekommst nur Werte aus dem JSON rein, die den Regeln für ABAP-Feldnamen entsprechen. Also: keine Sonderzeichen im Namen und nicht mehr als 30 Zeichen lang.

Davon abgesehen funktioniert das aber wunderbar. Und wenn das JSON Feldnamen enthält, die die ABAP-Namenskonventionen verletzen, kann man das vorher mit einem REPLACE-Befehl auf den JSON-String geradebiegen (wobei wir natürlich unterstellen müssen, dass genau dieser Feldname nicht in den Nutzdaten vorkommt).

Re: JSON parsen in Node-Table

Beitrag von ralf.wenzel (Top Expert / 3570 / 167 / 244 ) »
DeathAndPain hat geschrieben:
14.04.2021 19:28
Pferdefuß:....
Das war der Fehler....


Ralf

Re: JSON parsen in Node-Table

Beitrag von black_adept (Top Expert / 3519 / 71 / 696 ) »
Alternativ könntest du auch "CALL TRANSFORMATION ID" versuchen. Hat aber den selben Pferdefuß
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: JSON parsen in Node-Table

Beitrag von ewx (Top Expert / 4381 / 214 / 486 ) »

Code: Alles auswählen.

DATA m_ref TYPE REF TO /ui5/cl_json_parser.                 "#EC NOTEXT
DATA m_json TYPE string.

CREATE OBJECT m_ref.
CONCATENATE
'{'
'  "users": ['
'     {'
'      "user": {'
'        "company": "My \"great\" company",'
'        "firstName": "Pawel",'
'        "lastName": "Checkov",'
'        "mail": "pavel@company.com",'
'        "hasMail": true,'
'        "id": 4711   ,   "float": 123.45,'
'        "socialIdentities": {}'
'      }'
'    },'
'    {'
'      "user": {'
'        "company":"Another \u0022great\u0022 company","firstName":"J\u00fcrgen"'
'      }'
'    }'
'  ]'
'}' INTO m_json SEPARATED BY cl_abap_char_utilities=>cr_lf.

m_ref->parse( m_json ).

cl_demo_output=>display_data( m_ref->m_entries ).
?

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
tm987456


Re: JSON parsen in Node-Table

Beitrag von ralf.wenzel (Top Expert / 3570 / 167 / 244 ) »
Enno, das ist genau, was ich brauche, danke!


Ralf

Re: JSON parsen in Node-Table

Beitrag von DeathAndPain (Top Expert / 1533 / 177 / 340 ) »
Hm, sicherlich eine nette Idee. Allerdings ist es mit der Dokumentation dieser Klasse so eine Sache... Besonders die "Beschreibung" der Methoden gefällt mir...

Seite 1 von 1

Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Vergleichbare Themen

JSON oder XML
von ralf.wenzel » 17.09.2019 11:52
JSON deserialisieren
von DeathAndPain » 13.02.2019 14:10
JSON-Datei zerlegen
von Walda86 » 05.12.2018 13:21
Web Dynpro Loop auf Node
von Amja92 » 12.03.2017 12:50
ALV Tree Node-Text auslesen
von Bugfix13 » 27.03.2014 14:36