Am 03.12.18 um 10:21 schrieb Thomas Jollans:
On 30/11/2018 15:01, Thomas Güttler wrote:
Ja, sorry. Ich bin hier etwas genervt, weil die Grundlagen nicht klar sind. JSON kann jeder. Aber binäre Daten darin zu übertragen geht leider nicht. Mit base64 benötigt es einer expliziten Absprache und darum ist es aus meiner Sicht ein work-around. Vermutlich wird es das werden. Es kommt darauf an, was der Empfänger der Daten kann. Ich vermute MessagePack werden die vermutlich nicht können. Aber vielleicht liege ich da auch falsch.
Base64 kann auch jeder, und die Absprache brauchst Du eh: ein JSON-Datensatz ist schön und gut, man muss aber immer wissen, wie ein bestimmtes JSON zu interpretieren ist.
In diesem konkreten Fall reiche ich die Daten einfach durch. Ich erhalte per SAP-RFC eine Datenstruktur und geben diese als JSON aus. SAP-RFC kann mit binären Daten umgehen. Schön wäre eine generische Lösung. Die scheitert gerade daran, dass man dann wieder programmieren muss: "if blablabla, dann die Daten erst noch per base64 verwurschteln ..." Wäre wirklich super, wenn ich meinem Kunden sagen könnte: Wir nehmen JSON++ (gibt es nicht, der Name ist erfunden) und fertig.
Je nachdem was Du überträgst, könntest Du auch Data-URIs in dem JSON einbetten (… die dann wiederum Base64 für Binärdaten benutzen). Da ist dann auch ein MIME-Typ drin.
Es gibt tausend work-Arounds (wie zb base64 selber erstellen) und hundert alternative JSON-Formate. In zehn Jahren werden wir wissen welches Format das Rennen gemacht hat. Aktuell ist das für mich noch nicht abzusehen. Gruß, Thomas -- Thomas Guettler http://www.thomas-guettler.de/ I am looking for feedback: https://github.com/guettli/programming-guidelines