Quali argomenti posso utilizzare per giustificare l'uso di XML o JSON per archiviare e trasmettere i dati degli oggetti?

2

Il mio capo progetto considera entrambi questi approcci non necessari. Sono stato coinvolto e ho assistito a molte discussioni su XML vs JSON, ma questa è la prima volta che ho sentito un argomento contro ENTRAMBI.

Stiamo usando c # in .Net 4. Archiviamo i dati in un database SQL Server sul server e anche su dispositivi mobili. Ho sentito tutti gli argomenti tra i due ma ora ho bisogno di capire gli argomenti a favore e contro l'uso di qualsiasi notazione di oggetti per memorizzare i dati - il mio lead di progetto preferisce il formato CSV.

    
posta MrWithersea 30.08.2013 - 13:35
fonte

3 risposte

3

Ci sono molte librerie che ti aiuteranno a serializzare e deserializzare i tuoi dati in XML o JSON. CSV non è più così popolare, quindi potresti aver bisogno di fare tutto da solo. Oltre a ciò, sia XML che JSON sono probabilmente più facili da leggere per un essere umano, il che rende il debugging più facile e veloce (cioè più economico).

CSV, d'altra parte, ha meno caratteri per gli stessi dati, quindi richiede meno spazio su disco e / o larghezza di banda.

Generalmente il tempo di sviluppo (ovvero i costi) è un vincolo molto più grande dello spazio su disco o dell'uso della larghezza di banda, quindi la maggior parte delle persone utilizzerà XML o JSON. Usare l'una o l'altra è una questione di quali librerie hai più familiarità o anche ragioni culturali (le persone di Java e di Scala tendono a usare l'XML, le persone di Javascript tendono a usare JSON). XML è più dettagliato (vale a dire più disco, più larghezza di banda), ma non al punto di essere un problema nella maggior parte dei progetti moderni.

Se il tuo capo è piuttosto vecchio, forse ricorda i giorni in cui ha fatto la differenza per inviare dati via cavo in un formato compatto compatto (come CSV, o anche un formato binario ad-hoc) invece di XML, ma che è molto raramente un problema con i computer moderni e le reti moderne.

    
risposta data 30.08.2013 - 18:59
fonte
5

Si tratta del compromesso tra la dimensione dei dati trasmessi (e quindi il tempo necessario per trasmetterli) e la facilità di conversione in / da oggetti di classe.

Un formato binario creato a mano avrà una dimensione inferiore a quella di JSON o XML, ma richiederà molto più impegno per codificare e testare le routine per la serializzazione / de-serializzazione.

Quasi ogni linguaggio / piattaforma di programmazione ha librerie mature e ben collaudate per XML e JSON che puoi collegare con il minimo sforzo.

    
risposta data 30.08.2013 - 13:45
fonte
1

I vantaggi del binario: dimensioni più piccole e serializzazione più rapida (de). Le dimensioni ridotte possono anche significare trasmissioni più veloci, soprattutto se utilizzi una rete lenta (ad es. Mobile).

Certo, il programmatore potrebbe avere altro lavoro da fare ma ciò dipende dalla libreria utilizzata per eseguire la serializzazione. Se stai usando una libreria JSON o XML per fare questo, mi aspetto che tu possa sostituire gli interni di quella libreria con un protocollo binario e nemmeno notare la modifica. (in effetti, lo so, l'abbiamo fatto una volta, la nostra libreria di serializzazione era XML, quando abbiamo sostituito l'oggetto con una versione binaria, le prestazioni generali del nostro programma sono aumentate del 20%).

Mi aspetto che l'unico vero vantaggio di JSON o XML sia che un essere umano può leggere i dati mentre è serializzato. Se questo è davvero utile dipende se stai usando i dati per l'archiviazione o solo per la comunicazione. Anche in questo caso, crea uno strumento per mostrarti i contenuti.

Per inciso, il formato CSV è ancora altrettanto negativo - la divisione è fondamentalmente tra una qualche forma di formato testuale o una binario. Data la scelta tra csv, xml o json ... dovrei dire "quali sono i dati memorizzati", csv può essere un'ottima scelta per molti dati, specialmente perché hai già uno strumento per manipolarli (un foglio di calcolo ) o per importarlo in un database. Se i dati sono gerarchici in qualche modo (ad esempio un grafico o un albero), allora csv non è una buona scelta.

    
risposta data 30.08.2013 - 14:06
fonte

Leggi altre domande sui tag