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 / 3776 / 176 / 262 ) »
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
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: JSON parsen in Node-Table

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
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 / 3776 / 176 / 262 ) »
DeathAndPain hat geschrieben:
14.04.2021 19:28
Pferdefuß:....
Das war der Fehler....


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: JSON parsen in Node-Table

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
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 / 4784 / 294 / 628 ) »

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 / 3776 / 176 / 262 ) »
Enno, das ist genau, was ich brauche, danke!


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: JSON parsen in Node-Table

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
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

Vergleichbare Themen

3
Antw.
1910
Views
Web Dynpro Loop auf Node
von Amja92 » 12.03.2017 12:50 • Verfasst in ABAP® für Anfänger
2
Antw.
3035
Views
PROGRAM LINES NODE in SmartForms
von prema » 22.02.2005 13:03 • Verfasst in Development Related
3
Antw.
6482
Views
WebDynpro node => Null Objektreferenz
von Dyrdek » 02.07.2015 09:34 • Verfasst in ABAP® für Anfänger
1
Antw.
2837
Views
ALV Tree Node-Text auslesen
von Bugfix13 » 27.03.2014 14:36 • Verfasst in ABAP® für Anfänger
0
Antw.
575
Views
JSON deserialisieren
von DeathAndPain » 13.02.2019 14:10 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor einer Stunde von msfox 2 / 37
Interne Tabelle
vor 19 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor einer Stunde von msfox 2 / 37
Interne Tabelle
vor 19 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141