JSON oder XML

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
10 Beiträge Seite 1 von 1
10 Beiträge Seite 1 von 1

JSON oder XML

Beitrag von ralf.wenzel (Top Expert / 3465 / 155 / 223 ) » 17. Sep 2019 11:52

Moin,

beim Ablegen beliebig strukturierter Daten verwende ich derzeit XMLs in Stringtabellen. Für die, die mit JSON mehr Erfahrung haben als ich: Bringt das was, JSON statt XML einzusetzen? Der XML-Overhead ist ja nicht gerade klein.


Ralf


Re: JSON oder XML

Beitrag von ewx (Top Expert / 4047 / 172 / 396 ) » 17. Sep 2019 13:30

Da die Verarbeitung von XML direkt von SAP unterstützt wird (CALL TRANSFORMATION) und es meiner Erfahrung nach sehr schnell geht, sehe ich in JSON keinen Vorteil.
Zudem finde ich es bei serialisierten Daten sinnvoll, wenn man sehen kann, welche Daten das sind. Bei XML sieht man das an den Tags. Bei JSON sieht man nur die Daten.

Re: JSON oder XML

Beitrag von a-dead-trousers (Top Expert / 3264 / 86 / 827 ) » 17. Sep 2019 13:59

CALL TRANSFORMATION unterstützt auch JSON. Der Aufruf ist nur etwas umständlicher, weil man mit JSON-Writer bzw. -Reader Objekten herumhantieren muss und es (noch) kein Schlüsselwort für JSON (analog zu XML für SOURCE oder RESULT) gibt.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: JSON oder XML

Beitrag von ewx (Top Expert / 4047 / 172 / 396 ) » 17. Sep 2019 15:21

ewx hat geschrieben:
17. Sep 2019 13:30
Bei JSON sieht man nur die Daten.
Stimmt ja gar nicht...
Dementsprechend ist der Overhead bei json also auch da.
Evtl. gibt es noch eine andere Art, die Daten als JSON zu speichern? Also ohne den Bezeichner? Ansonsten sind nach einem kurzen Versuch einerseits Verarbeitungszeit als auch Datengröße ähnlich.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
DeathAndPain (18. Sep 2019 12:45)


Re: JSON oder XML

Beitrag von deejey (Specialist / 239 / 63 / 20 ) » 18. Sep 2019 01:19

Am besten ist immer noch csv-Datei 😜

Folgende Benutzer bedankten sich beim Autor deejey für den Beitrag:
DeathAndPain (18. Sep 2019 12:45)


Re: JSON oder XML

Beitrag von IHe (ForumUser / 45 / 14 / 11 ) » 18. Sep 2019 07:41

Wenn es hauptsächlich um den Overhead geht, bringt evtl. eine Conversion-Methode mit ZIP/UNZIP-Funktionalität etwas, wodurch die Stringdaten vor dem Speichern umgewandelt und dann als XSTRING gespeichert werden + Unzip beim Laden der Daten?

Das geht allerdings deutlich auf die Performance wenn es um Massenverarbeitung geht, lohnt sich vermutlich nur für einzelne große Objekte.

Re: JSON oder XML

Beitrag von SaskuAc (Specialist / 286 / 29 / 36 ) » 18. Sep 2019 08:50

deejey hat geschrieben:
18. Sep 2019 01:19
Am besten ist immer noch csv-Datei 😜
Aber natürlich! - zumindest zum in die Tonne kloppen und nie wieder anschauen ( außer man ist data scientist... )

Zum Thema:
zum einfachen Speichern in einer Stringtabelle würde ich weiterhin bei XML bleiben. Ich empfinde den overhead jetzt nicht so dramatisch. Je nachdem wie "kompliziert" deine XML ist, desto größer wird auch der Overhead. Ansonsten hilft ein "call transformation".

Wenn du allerdings später diese Daten extern weitergeben willst ( z. b. als webservice oder auf einem dateiserver oder sonst wie ) empfinde ich JSON als sinnvoller und moderner. Ist aber wohl geschmackssache.

Folgende Benutzer bedankten sich beim Autor SaskuAc für den Beitrag:
DeathAndPain (18. Sep 2019 12:46)


Re: JSON oder XML

Beitrag von edwin (Specialist / 273 / 5 / 46 ) » 18. Sep 2019 10:57

Hi,
also ich benutze fast nur noch JSON, das braucht bei mir 50-60%
weniger als XML, und das Handling ist auch nicht komplizierter.

Grüße Edwin

Re: JSON oder XML

Beitrag von ralf.wenzel (Top Expert / 3465 / 155 / 223 ) » 18. Sep 2019 15:23

edwin hat geschrieben:
18. Sep 2019 10:57
Hi,
also ich benutze fast nur noch JSON, das braucht bei mir 50-60%
weniger als XML, und das Handling ist auch nicht komplizierter.

Grüße Edwin
Wie genau verwendest du das, ausgehend vom bislang verwendeten CALL TRANSFORMATION? ;)


Ralf

Re: JSON oder XML

Beitrag von edwin (Specialist / 273 / 5 / 46 ) » 18. Sep 2019 16:04

Hi,

SAP codepage 4110 - utf-8

Code: Alles auswählen.

data xstr      type xstring.
data data_struct  type <irgendeine auch tiefe striktur>.

xstr = cl_bcs_convert=>string_to_xstring( EXPORTING iv_codepage = '4110'
                             iv_string = /ui2/cl_json=>serialize( compress = 'X' data = data_struct ) ).
..
* anschauen:
DATA(out) = cl_demo_output=>new(  )->begin_section( 'JSON' ).

out->write_xml( xstr )->display( ).
..
* und zurück 
clear data_struct.
/ui2/cl_json=>deserialize(  EXPORTING json  =
       cl_bcs_convert=>XSTRING_TO_STRING( exporting IV_XSTR = xstr iv_cp = '4110' )
                              CHANGING  data  = data_struct ).

/Edwin

Folgende Benutzer bedankten sich beim Autor edwin für den Beitrag (Insgesamt 3):
IHe (19. Sep 2019 07:42) • Thomas R. (19. Sep 2019 08:47) • SaskuAc (19. Sep 2019 08:47)


Seite 1 von 1

Aktuelle Forenbeiträge

Web Service Restful API
vor 11 Stunden von Tron 2 / 32
Entwurfsmuster in ABAP / OO
vor 2 Tagen von Maximus 16 / 2132
VA01, Kundenauftragserfassung Preisdatum
vor 2 Tagen von SAP_ENTWICKLER 1 / 53
Rabax Fehlermeldung
vor 2 Tagen von zzcpak 2 / 84
Aufgabe Programm/- Tabellenerstellung
vor 2 Tagen von SaskuAc 3 / 84

Unbeantwortete Forenbeiträge

VA01, Kundenauftragserfassung Preisdatum
vor 2 Tagen von SAP_ENTWICKLER 1 / 53
HANA Audit Trail
vor einer Woche von JohnLocklay 1 / 97
Halber Tag Urlaub
vor einer Woche von SO4SAP 1 / 61
Funktionsbausteine BAPI_INCOMINGINVOICE*****
vor einer Woche von Rabea1103 1 / 70
S4/HANA in der Cloud / 14 Tage Trial
vor 3 Wochen von Tron 1 / 101