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 / 3522 / 160 / 241 ) » 17.09.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 / 4199 / 193 / 436 ) » 17.09.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 / 3437 / 105 / 884 ) » 17.09.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 / 4199 / 193 / 436 ) » 17.09.2019 15:21
ewx hat geschrieben:
17.09.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.09.2019 12:45)


Re: JSON oder XML

Beitrag von deejey (Specialist / 314 / 83 / 25 ) » 18.09.2019 01:19
Am besten ist immer noch csv-Datei 😜

Folgende Benutzer bedankten sich beim Autor deejey für den Beitrag:
DeathAndPain (18.09.2019 12:45)


Re: JSON oder XML

Beitrag von IHe (ForumUser / 52 / 17 / 16 ) » 18.09.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 / 320 / 37 / 43 ) » 18.09.2019 08:50
deejey hat geschrieben:
18.09.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.09.2019 12:46)


Re: JSON oder XML

Beitrag von edwin (Specialist / 293 / 7 / 62 ) » 18.09.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 / 3522 / 160 / 241 ) » 18.09.2019 15:23
edwin hat geschrieben:
18.09.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 / 293 / 7 / 62 ) » 18.09.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 4):
IHe (19.09.2019 07:42) • Thomas R. (19.09.2019 08:47) • SaskuAc (19.09.2019 08:47) • tm987456 (07.05.2020 10:48)


Seite 1 von 1