( ggallo | 2023. 03. 14., k – 22:08 )

Ez azért kemény válasz annak arányában, hogy teljesen jogos és igaz amit ír...

A JSON meg az XML adat _ábrázolási_ formátumok, nem adat _tárolási_ formátumok. Mind a kettő különböző rendszerek közötti adat cserét szolgál, nem az adat tárolását. Jellemzően csak adatátvitel során használatosak, sem a forrás sem a célállomáson nincs JSON meg XML (string) tárolva, csak adat van, az adott rendszer saját módján tárolva. Kvázi konténerek, amikbe bekerül, majd kikerül az adat.

Az adatbázis tárolja az adatot ahogy tudja, majd a kliens kérésére előállítja a JSON vagy XML formátumú adatcsomagot. Ez elkerül bárhogy a klienshez, aki a formátum ismeretében "kiveszi" az adatot a kapott csomagból és eltárolja egy számára könnyen feldolgozgható módon.

A méretük valóban különbözik és ez akár jelentős átvitt adatmennyiség különbséget is adhat. De pl. az XML a séma segítségével bárhol validálható út közben, ellenben a JSON-ról csak a kliens tudja megmondani, hogy jó-e tartalmilag... Ha meg az átvitt adat mennyiség ilyen kritikus, akkor az adott adatbázis-rendszer natív bináris formátumát használva (ha van ilyenje) még kevesebb lesz az átvitt adat valószínűleg, mint akár JSON formátumba öntve.

Pl. a JSON formátumban megkapott adatot nem string-ként teszel el és interpretálod minden egyes alkalommal amikor kell belőle valami mező, hanem egy objektumba töltöd be (a JSON string megy /dev/null-ba) és azt használod onnantól adatforrásnak a kliens appban. Aztán visszafelé az objektumból csinálsz string-et, amit átküldesz a csatornán az adatbázisnak...