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 / 3924 / 200 / 280 ) »
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 / 1944 / 257 / 413 ) »
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 / 3924 / 200 / 280 ) »
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 / 4089 / 127 / 940 ) »
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 / 4846 / 311 / 642 ) »

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 / 3924 / 200 / 280 ) »
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 / 1944 / 257 / 413 ) »
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.
2057
Views
Web Dynpro Loop auf Node
von Amja92 » 12.03.2017 12:50 • Verfasst in ABAP® für Anfänger
2
Antw.
3231
Views
PROGRAM LINES NODE in SmartForms
von prema » 22.02.2005 13:03 • Verfasst in Development Related
1
Antw.
2956
Views
ALV Tree Node-Text auslesen
von Bugfix13 » 27.03.2014 14:36 • Verfasst in ABAP® für Anfänger
3
Antw.
6764
Views
WebDynpro node => Null Objektreferenz
von Dyrdek » 02.07.2015 09:34 • Verfasst in ABAP® für Anfänger
1
Antw.
1744
Views
Der Parameter NODE enthält einen ungültigen Wert
von Dyrdek » 10.08.2014 14:50 • Verfasst in Web-Dynpro, BSP + BHTML

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 4 Stunden von DeathAndPain gelöst 22 / 2796
Daten an Tabelle binden
vor 9 Stunden von Lukas Sanders 2 / 874
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 430

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

Dialog-Container mit Toolbar/Status
vor 4 Stunden von DeathAndPain gelöst 22 / 2796
Daten an Tabelle binden
vor 9 Stunden von Lukas Sanders 2 / 874
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 430

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2466
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9050