Du hast Recht mit der Aussage, dass man aus einer gegebenen Bytefolge unterschiedlichste in-Memory Datenstrukturen ableiten kann und dass eine gegebene in-Memory Datenstruktur auf die unterschiedlichste Art serialisiert und als Symbolfolge (Beispiel für ein Symbol: eine Zahl von 0-255, technisch repräsentiert als ein Byte) abspeichert werden kann.die Struktur nicht mitserialisiere, geht Information verloren. Diese muss ich beim Deserialisieren irgendwie rekonstruieren. Wenn die Struktur nicht in der Datei steckt, dann muss ich Struktur aus dem Nichts synthetisieren. Mein Deserialisierer muss sie auf Grund von Annahmen, die er über die vorgefundene Datei trifft, festlegen.
Das ist nicht unbedingt leicht. Wenn ich eine EAV Struktur transportiere, dann geht es noch. Dann sind
Das vernachlässigt aber den Aspekt, dass Struktur, die Daten innewohnt, eine Bedeutung hat. Wenn ich es immer Werte-Tripel, die zusammenzufassen sind. Es gibt aber bereits da schon ein Abgrenzungsproblem: Ich muss das Zeichen, das ich als Worttrenner benutze, maskieren wenn es Teil der übermittelten Werte ist, und ich muss die Entities voneinander abgrenzen, damit der Deserialisierer weiß wo eine neue Entity beginnt.
Will ich beliebige Strukturen übermitteln, wird es aufwändiger. Vor allem wenn komplexere Objektreferenzen auftauchen oder beliebige Schachtelungen von Arrays und Objekten. Ohne jede Strukturinformation in der übertragenen Datei geht es dann gar nicht mehr (zumindest brauche ich Angaben, um das Ende von Arrays und Objekten zu finden). Und für jede Struktur schreibe und TESTE ich einen eigenen Deserialisierer.
Um mir das zu vereinfachen, KÖNNTE ich sagen, dass ich beliebige Strukturen vor der Übertragung auf EAV transformiere und nach Deserialisierung es von EAV auf meine Zielstruktur zurücktransformiere. Das würde ich aber als gemogelt ansehen, denn jetzt schreibe und TESTE ich schon zwei Transformatoren, nur um einen einheitlichen Serialisierer und Deserialisierer nutzen zu können.
Bei JSON und XML steckt die Struktur automatisch mit in der Datei. Da muss keiner mehr eine Annahme treffen, um eine Hierarchie von anonymen Objekten erzeugen zu können. Die Tools zum Lesen und Schreiben von JSON und XML sind vorhanden und getestet. Für XML gibt es mit XPATH eine Abfragesprache auf XML Dokumente. Natürlich MUSS ich das nicht benutzen. Aber bevor ich meine Zeit in das Entwickeln von Basistechnik stecke, die längst schon existiert, nutze ich sie lieber für Aktivitäten, mit denen ich Geld verdienen kann. Meinem Kunden ist es nämlich komplett egal, ob ich JSON, XML, EAV oder WAV-Files mit Trommeltönen übertrage. Der will seine Daten sehen. Zu der Frage, wie ich die transportiere, hat mein Kunde nur eine Meinung: ZUVERLÄSSIG. Und im Fall eines Netzes aus Services, die interoperabel sein müssen: EINHEITLICH.
Und deswegen nutze ich etablierte Standards, statt das Rad neu zu erfinden. Es wird MIR nämlich nicht gelingen, meine Eigengewächse auf der Welt als neuen Standard zu etablieren. Dir auch nicht. Ich bin zwar deutlich bedeutungsloser als Du (weil Du immerhin eine Webseite zu deinen Themen publizierst, während ich nur in diesem Forum herumplärre), aber so sehr an Dunning-Kruger leide ich hoffentlich auch nicht, um zu erkennen, dass Deine Reichweite dafür auch nicht genügen wird.
Rolf