Από επιτραπέζιους υπολογιστές σε web και κινητές συσκευές, σχεδόν όλες οι εφαρμογές υπολογιστών που χρησιμοποιούμε σήμερα βασίζονται σε ένα από τα δύο βασικά πρότυπα μηνυμάτων: JSON και XML. Σήμερα, το JSON είναι η πιο ευρέως χρησιμοποιούμενη μορφή, αλλά ξεπέρασε το XML μόνο τα τελευταία πέντε χρόνια. Μια γρήγορη αναζήτηση στο διαδίκτυο για το 'JSON εναντίον XML' θα φέρει αμέτρητα άρθρα και αναρτήσεις ιστολογίου που συγκρίνουν τα δύο πρότυπα και ισοδυναμεί με μια προοδευτικά διευρυνόμενη προκατάληψη που επαινεί την απλότητα του JSON και επικρίνει την ευγένεια του XML. Πολλά άρθρα επιμένουν ότι το JSON είναι ανώτερο από το XML λόγω της στενής σημασιολογίας του και την έκπτωση XML ως αναποτελεσματικό και μπερδεμένο πρότυπο του παρελθόντος. Στην αρχή, το JSON φαίνεται να είναι το πιο δημοφιλές - έτσι είναι το JSON απλώς καλύτερο από το XML; Η μάχη του 'JSON εναντίον XML' μπορεί να πάει στο JSON στην επιφάνεια, αλλά σε βάθος, υπάρχουν περισσότερα από ό, τι συναντά το μάτι.
Στο Μέρος 1 αυτού του άρθρου, θα:
Για να ανακαλύψουμε τον λόγο για τη δημοτικότητα του JSON έναντι του XML, ας εξερευνήσουμε την ιστορία του ιστού και πώς η εξέλιξή του από το Web 1.0 στο Web 2.0 επηρέασε τις τάσεις στην ανάπτυξη.
Οι αρχές της δεκαετίας του 1990 ήταν η αυγή του Web 1.0. Η HTML εισήχθη το 1991 και υιοθετήθηκε ευρέως από πανεπιστήμια, επιχειρήσεις και κυβερνητικούς οργανισμούς ως τη γλώσσα του διαδικτύου. Το HTML προήλθε από το SGML ή 'Standard Generalized Markup Language' που εφευρέθηκε τη δεκαετία του 1970 από την IBM. Εκτός από τη μάζα υιοθεσία , Μάζα πριονιών HTML προσαρμογή - οι επεκτάσεις ενσωματώθηκαν για να υποστηρίξουν πολυμέσα, κινούμενα σχέδια, διαδικτυακές εφαρμογές, ηλεκτρονικό εμπόριο και άλλα. Ως παράγωγο της SGML, η HTML δεν διέθετε αυστηρές προδιαγραφές για να εμποδίσει τις εταιρείες να το επεκτείνουν ελεύθερα ώστε να πληρούν απαιτήσεις που ήταν πέρα από την αρχική ιδέα. Ο διαγωνισμός για το πιο δημοφιλές πρόγραμμα περιήγησης ιστού μεταξύ Netscape και Microsoft απέδωσε ταχεία πρόοδο, αλλά οδήγησε επίσης σε ασταμάτητο κατακερματισμό του προτύπου. Ο έντονος ανταγωνισμός οδήγησε σε «καταστροφή απόκλισης», καθώς η αύξηση του HTML από τις δύο εταιρείες προκάλεσε τα προγράμματα περιήγησης να υποστηρίξουν τις δικές τους μοναδικές εκδόσεις HTML. Αυτή η καταστροφή απόκλισης έγινε ένα τεράστιο πρόβλημα για εφαρμογές web καθώς οι προγραμματιστές αγωνίστηκαν να γράψουν διαλειτουργικό κώδικα για τα προγράμματα περιήγησης.
Στα τέλη της δεκαετίας του 1990, μια ομάδα ανθρώπων - συμπεριλαμβανομένων των Jon Bosak, Tim Bray, James Clark και άλλων - βρήκαν το XML: την 'eXtensible Markup Language'. Όπως το SGML, το XML δεν είναι από μόνο του μια γλώσσα σήμανσης, αλλά μια προδιαγραφή για τον ορισμό των γλωσσών σήμανσης. Το XML ήταν μια εξέλιξη από το SGML - σχεδιασμένο να παρέχει μέσα για τον καθορισμό και την επιβολή δομημένου περιεχομένου. Θεωρείται ως «το ιερό δισκοπότηρο της πληροφορικής» ένας η γλώσσα XML προσπάθησε «να λύσει το πρόβλημα της καθολικής ανταλλαγής δεδομένων μεταξύ ανόμοιων συστημάτων» (Dr. Charles Goldfarb) 2 . Αντί του συνεχιζόμενου κατακερματισμού της HTML, η Επιτροπή Παγκόσμιου Ιστού (W3C) δημιουργήθηκε για να προωθήσει τη συμβατότητα και τη συμφωνία μεταξύ του κλάδου για την υιοθέτηση νέων προτύπων για τον Παγκόσμιο Ιστό. 3 Το W3C έθεσε ως στόχο την αναμόρφωση του HTML ως εφαρμογή XML, με αποτέλεσμα το XHTML.
Το XHTML ήταν μια μεγάλη πρωτοβουλία που έφερε την προσοχή στην XML, αλλά είναι μόνο ένα μικρό μέρος του XML.
πώς να δημιουργήσετε μια ιδέα
Η XML παρείχε έναν τρόπο στον κλάδο να καθορίσει, με αυστηρή σημασιολογία, προσαρμοσμένες γλώσσες σήμανσης για οποιαδήποτε εφαρμογή. Με τη λέξη-κλειδί να είναι «αυστηρή σημασιολογία», η XML καθόρισε ένα πρότυπο που θα μπορούσε να επιβεβαιώσει την ακεραιότητα των δεδομένων σε οποιοδήποτε έγγραφο XML, οποιασδήποτε υπο-γλώσσας XML. Για εταιρείες λογισμικού που αναπτύσσουν κατανεμημένες εταιρικές εφαρμογές που διασυνδέονται με διαφορετικά συστήματα, μια γλώσσα σήμανσης που θα μπορούσε να επιβεβαιώσει την ακεραιότητα των δεδομένων της ήταν σημαντική. Με τον καθορισμό δομημένου περιεχομένου με XML, οι εταιρείες αξιοποίησαν τα χαρακτηριστικά αυτής της τεχνολογίας για να συνεργαστούν με οποιαδήποτε πλατφόρμα, να ενισχύσουν την ακεραιότητα δεδομένων κάθε ανταλλαγής δεδομένων και να μειώσουν συστηματικά τον κίνδυνο λογισμικού των συστημάτων τους. Για τη βιομηχανία, η XML παρείχε μια τεχνολογία για την αποθήκευση, την επικοινωνία και την επικύρωση οποιουδήποτε είδους δεδομένων, σε μια μορφή που οι εφαρμογές σε οποιαδήποτε πλατφόρμα μπορούν εύκολα να διαβαστούν και να επεξεργαστούν. Για HTML, η XML υποσχέθηκε να λύσει την «καταστροφή απόκλισης».
Στις αρχές της δεκαετίας του 2000, ο ιστός διέθετε δύο εταιρείες: την Sun και τη Microsoft. Εκείνη την εποχή, το τοπίο των γλωσσών προγραμματισμού είχε μεγάλη κλίση στην πλευρά του διακομιστή. Η κοινή αρχιτεκτονική για εφαρμογές ιστού βασίστηκε σε διακομιστές που δίνουν σελίδες HTML στο πίσω μέρος για να παραδοθούν στο πρόγραμμα περιήγησης. Αυτή η προσέγγιση υπογράμμισε τεχνολογίες back-end, οι οποίες με τη σειρά τους διέδωσαν τις κορυφαίες πλατφόρμες back-end: Java και C # .NET. Αναπτύχθηκε από την Sun Microsystems, η Java οδήγησε τη νέα γενιά γλωσσών προγραμματισμού με αντικειμενοστρεφή επίλυση του προβλήματος της διασταυρούμενης αρχιτεκτονικής με το μυθιστόρημά της 'γράψτε μια φορά τρέχει οπουδήποτε' 4 πλησιάζω. Η Microsoft ακολούθησε τα .NET, C #, και το Common Language Runtime (CLR) και έριξε τα μάτια της στο XML ως προσέγγιση επιλογής για την επίλυση του παζλ διαλειτουργικότητας δεδομένων. Η Microsoft έγινε ο μεγαλύτερος υποστηρικτής της XML, με την εταιρεία να επιλέγει την XML ως αναπόσπαστο μέρος της εξέχουσας πρωτοβουλίας της .NET. Διαφημίζεται ως 'πλατφόρμα για υπηρεσίες διαδικτύου XML' 5 Εφαρμογές .NET είχαν αρχίσει να χρησιμοποιούν XML για επικοινωνία με άλλες πλατφόρμες. Επιλεγμένο ως πρότυπο ανταλλαγής δεδομένων της Microsoft, το XML ενσωματώθηκε στα κορυφαία προϊόντα του διακομιστή, όπως ο SQL Server και το Exchange.
Η παράδοση προ-αποτυπωμένων σελίδων HTML στο πρόγραμμα περιήγησης δεν ήταν επεκτάσιμη και ο ιστός χρειαζόταν μια εναλλακτική λύση. Με κάθε ενέργεια του χρήστη που απαιτεί τη φόρτωση μιας νέας σελίδας από το διακομιστή, η φόρτωση της διαδικασίας και η κατανάλωση εύρους ζώνης έγιναν ανησυχητικά καθώς περισσότεροι άνθρωποι διογκώθηκαν στον ιστό.
Η Netscape και η Microsoft προσπάθησαν να αντιμετωπίσουν αυτό το πρόβλημα με ασύγχρονη παράδοση περιεχομένου: ActiveX και JavaScript. Το 1998, η ομάδα Microsoft Outlook Web Access ανέπτυξε την ιδέα πίσω από το ActiveX 6 , το οποίο αργότερα εφαρμόστηκε από τους Mozilla, Safari, Opera και άλλα προγράμματα περιήγησης σε JavaScript ως το XMLHttpRequest
αντικείμενο.
Ο AJAX γεννήθηκε από το ActiveX της Microsoft και το Netscape's JavaScript.
Ο όρος AJAX - συντομογραφία 'Asynchronous JavaScript and XML' - έρχεται να αντιπροσωπεύει ένα ευρύ φάσμα τεχνολογιών Ιστού που μπορούν να χρησιμοποιηθούν για την εφαρμογή εφαρμογών ιστού που επικοινωνούν με διακομιστές στο παρασκήνιο χωρίς να απαιτείται επαναφόρτωση μιας σελίδας. Στο άρθρο που επινόησε τον όρο AJAX, 7 8 Ο Τζέιμς Τζέιμς Γκάρετ περιέγραψε τις κύριες έννοιες:
XMLHttpRequest
αντικείμενο ασύγχρονης επικοινωνίας.Με την ασύγχρονη παράδοση περιεχομένου να αποδεικνύει ότι μειώνει το φορτίο του διακομιστή και εξοικονομεί σημαντικό εύρος ζώνης, το AJAX ήταν ένα παιχνίδι αλλαγής. Η εισαγωγή του XMLHttpRequest
στα προγράμματα περιήγησης επέτρεψε στους προγραμματιστές να εφαρμόσουν πιο σύνθετη λογική στο front end. Η Google πραγματοποίησε μια ευρεία ανάπτυξη AJAX μεταξύ προγραμμάτων περιήγησης συμβατή με πρότυπα με το Gmail το 2004 και τους Χάρτες Google το 2005. 9 Και, τον Οκτώβριο του 2004, η δημόσια έκδοση beta του Kayak.com ήταν μια από τις πρώτες χρήσεις ηλεκτρονικού εμπορίου AJAX μεγάλης κλίμακας. 10
Η υιοθέτηση του AJAX ως η επεκτάσιμη αρχιτεκτονική για εφαρμογές Ιστού οδήγησε στην αυγή του Web 2.0: της Ενιαίας Σελίδας Εφαρμογής (SPA). έντεκα Αντί να επαναφορτώνουν ολόκληρη τη σελίδα για κάθε αλληλεπίδραση χρήστη, οι SPA ξαναγράφουν δυναμικά την τρέχουσα σελίδα στο πρόγραμμα περιήγησης. Εκτός από τη σημαντική μείωση του φορτίου διακομιστή και της κατανάλωσης εύρους ζώνης, η προσέγγιση SPA επέτρεψε στις εφαρμογές ιστού να μοιάζουν με εφαρμογές επιφάνειας εργασίας λόγω της απρόσκοπτης και αδιάκοπης εμπειρίας κατά τη διάρκεια της αλληλεπίδρασης με τον χρήστη.
Τον Απρίλιο του 2002, ο Stuart Morris έγραψε ένα από τα πρώτα SPA στο slashdotslash.com 12 , και αργότερα τον ίδιο χρόνο, ο Lucas Birdeau, ο Kevin Hakman, ο Michael Peachey και ο Evan Yeh περιέγραψαν μια εφαρμογή μιας σελίδας στο δίπλωμα ευρεσιτεχνίας ΗΠΑ 8.136.109. 13 Το δίπλωμα ευρεσιτεχνίας περιήγησε προγράμματα περιήγησης ιστού χρησιμοποιώντας JavaScript για να εμφανίσει το περιβάλλον εργασίας χρήστη, να τρέξει τη λογική της εφαρμογής και να επικοινωνήσει με διακομιστή ιστού.
Το Gmail, οι Χάρτες Google και η δημόσια έκδοση beta του Kayak πυροδότησαν μια νέα εποχή ανάπτυξης εφαρμογών ιστού. Τα προγράμματα περιήγησης που έχουν ενεργοποιηθεί με την AJAX δίνουν τη δυνατότητα στους προγραμματιστές να γράφουν πλούσιες εφαρμογές για τον Ιστό. Η εύκολη σημασιολογία της JavaScript επέτρεψε την ανάπτυξη εφαρμογών για προγραμματιστές οποιουδήποτε επιπέδου. Το εμπόδιο για την είσοδο στην ανάπτυξη λογισμικού μειώθηκε σημαντικά και οι μεμονωμένοι προγραμματιστές σε όλο τον κόσμο άρχισαν να συνεισφέρουν με τις δικές τους βιβλιοθήκες και πλαίσια. Δημοφιλείς βιβλιοθήκες όπως το jQuery, οι οποίες ομαλοποιούν τη συμπεριφορά AJAX σε προγράμματα περιήγησης από διαφορετικούς κατασκευαστές, προχώρησαν περαιτέρω στην επανάσταση του AJAX.
javascript λάβετε χρόνο από την ημερομηνία
Τον Απρίλιο του 2001, ο Douglas Crockford και ο Chip Morningstar έστειλαν το πρώτο μήνυμα JSON από έναν υπολογιστή στο γκαράζ του Morningstar’s Bay Area. Οι Crockford και Morningstar προσπαθούσαν να δημιουργήσουν εφαρμογές AJAX πολύ πριν ο όρος 'AJAX' επινοηθεί, αλλά η υποστήριξη του προγράμματος περιήγησης για αυτό που προσπαθούσαν να επιτύχουν δεν ήταν καλή. Ήθελαν να μεταδώσουν δεδομένα στην εφαρμογή τους μετά τη φόρτωση της σελίδας, αλλά δεν βρήκαν τρόπο να το επιτρέψουν να λειτουργήσει σε όλα τα προγράμματα περιήγησης.
Το 2001, μόλις άρχισε η ανάπτυξη του AJAX και δεν υπήρχε ακόμη μια διαλειτουργική μορφή του XMLHttpRequest
αντικείμενο στον Internet Explorer 5 και το Netscape 4. Έτσι, οι Crockford και Morningstar χρησιμοποίησαν μια διαφορετική προσέγγιση που λειτούργησε και στα δύο προγράμματα περιήγησης.
Το πρώτο μήνυμα JSON έμοιαζε με αυτό:
document.domain = 'fudco'; parent.session.receive( { to: 'session,' do: 'test,' text: 'Hello world' } )
Αυτό το μήνυμα είναι στην πραγματικότητα ένα έγγραφο HTML που περιέχει κάποια JavaScript και μόνο ένα μικρό μέρος του μηνύματος μοιάζει με το JSON όπως το γνωρίζουμε σήμερα. Οι Crockford και Morningstar μπόρεσαν να φορτώσουν δεδομένα ασύγχρονα δείχνοντας ένα
σε μια διεύθυνση URL που θα επέστρεφε ένα έγγραφο HTML όπως το παραπάνω. Όταν ελήφθη η απάντηση, θα εκτελεζόταν η JavaScript στο HTML και, παρακάμπτοντας τις προστασίες του προγράμματος περιήγησης, αποτρέποντας την πρόσβαση των υπο-παραθύρων στο γονέα, το αντικείμενο κυριολεκτικά μεταφέρθηκε πίσω στο κύριο πλαίσιο της εφαρμογής. Αυτή η τεχνική βάσει πλαισίου, που μερικές φορές ονομάζεται «τεχνική κρυφών πλαισίων», χρησιμοποιήθηκε συνήθως στα τέλη της δεκαετίας του '90 πριν από την εκτεταμένη εφαρμογή του XMLHttpRequest
. 14
Αυτή η προσέγγιση απευθύνεται στους προγραμματιστές επειδή προσέφερε διαλειτουργικότητα σε όλα τα προγράμματα περιήγησης. Δεδομένου ότι το μήνυμα είναι απλώς JavaScript, δεν απαιτεί ειδική ανάλυση. Η ιδέα της χρήσης JavaScript με αυτόν τον τρόπο ήταν τόσο απλή που ο ίδιος ο Κρόκφορντ είπε ότι δεν ήταν το πρώτο άτομο που το έκανε - ισχυρίζεται ότι κάποιος στο Netscape χρησιμοποίησε JavaScript για να επικοινωνήσει πληροφορίες ήδη από το 1996. δεκαπέντε
Οι Crockford και Morningstar συνειδητοποίησαν ότι είχαν κάτι που θα μπορούσε να χρησιμοποιηθεί σε κάθε είδους εφαρμογές. Ονόμασαν τη μορφή τους JSON, η οποία είναι συντομογραφία για 'Σημείωση αντικειμένου JavaScript'. Άρχισαν να το προωθούν σε πελάτες, αλλά σύντομα διαπίστωσαν ότι πολλοί δεν ήταν πρόθυμοι να εκμεταλλευτούν μια νέα τεχνολογία που δεν διέθετε επίσημες προδιαγραφές. Έτσι ο Κρόκφορντ αποφάσισε να γράψει ένα. Το 2002, ο Crockford αγόρασε τον τομέα JSON.org και έθεσε τη γραμματική JSON και μια εφαρμογή αναφοράς ενός αναλυτή. Ο ιστότοπος είναι ακόμα σε λειτουργία, αν και περιλαμβάνει τώρα έναν εμφανή σύνδεσμο με το πρότυπο JSON ECMA που επικυρώθηκε το 2013. 16 Αφού εγκατέστησε τον ιστότοπο, ο Κρόκφορντ έκανε λίγα περισσότερα για να προωθήσει το JSON, αλλά σύντομα βρήκε ανθρώπους να υποβάλλουν εφαρμογές ανάλυσης JSON για διαφορετικές γλώσσες προγραμματισμού. Η προέλευση του JSON συνδέεται σαφώς με τη JavaScript, αλλά έγινε εμφανές ότι το JSON ήταν κατάλληλο για ανταλλαγή δεδομένων μεταξύ αυθαίρετων γλωσσών.
Το 2005, ο Τζέιμ Τζέιμς Γκάρετ επινόησε τον όρο «AJAX» σε μια ανάρτηση ιστολογίου, όπου τόνισε ότι το AJAX δεν ήταν καμία νέα τεχνολογία αλλά μάλλον «αρκετές τεχνολογίες, καθεμία από τις οποίες άνθισε από μόνη της, ενώνοντας με ισχυρούς νέους τρόπους» 16 Η ανάρτηση του ιστολογίου του συνέχισε να περιγράφει πώς οι προγραμματιστές θα μπορούσαν να αξιοποιήσουν τη JavaScript και XMLHttpRequest
για τη δημιουργία νέων ειδών εφαρμογών που ανταποκρίνονταν περισσότερο και από την τυπική ιστοσελίδα. Επισήμανε το Gmail, τους Χάρτες Google και το Flickr ως παραδείγματα ιστότοπων που χρησιμοποιούν τεχνικές AJAX. Αν και το 'X' στο 'AJAX' σημαίνει XML, ο Garrett επισήμανε τον JSON ως μια εντελώς αποδεκτή εναλλακτική λύση. Έγραψε ότι 'Το XML είναι το πιο ανεπτυγμένο μέσο για τη λήψη δεδομένων μέσα και έξω από έναν πελάτη AJAX, αλλά δεν υπάρχει κανένας λόγος που δεν θα μπορούσατε να επιτύχετε τα ίδια εφέ χρησιμοποιώντας μια τεχνολογία όπως η Σημείωση αντικειμένου JavaScript ή παρόμοια μέσα δομής δεδομένων.' 17
Το JavaScript και το JSON προοριζόταν σαφώς να είναι μαζί. Η σημασιολογία του JSON αντιστοιχεί απευθείας στη JavaScript, καθιστώντας την την εγγενή μορφή ανταλλαγής δεδομένων για τη γλώσσα. Οι προγραμματιστές γρήγορα διαπίστωσαν ότι το JSON ήταν πιο εύκολο να συνεργαστεί με JavaScript και πολλοί το προτιμούσαν από το XML.
Καθώς ο JSON επέστησε την προσοχή της μπλογκόσφαιρας, ο πολλαπλασιασμός του JSON είχε αρχίσει.
Το JSON είναι η εγγενής μορφή δεδομένων σε εφαρμογές JavaScript. Με τη διάδοση του JavaScript την τελευταία δεκαετία, έχουν δημιουργηθεί περισσότερα μηνύματα JSON από οποιαδήποτε άλλη μορφή δεδομένων. Η σύνταξη εφαρμογών σε JavaScript επιβάλλει σχεδόν τη χρήση του JSON για ανταλλαγή δεδομένων. Άλλες μορφές είναι δυνατές, αλλά απαιτούν περισσότερη προσπάθεια από ό, τι με το JSON. Με το JavaScript να κερδίζει δημοτικότητα για την ανάπτυξη εφαρμογών, η JSON ακολούθησε στενά ως την εύχρηστη και εγγενώς ενσωματωμένη μορφή ανταλλαγής δεδομένων.
Όσον αφορά την μπλογκόσφαιρα, έχουν γραφτεί περισσότερα άρθρα, δείγματα και σεμινάρια σχετικά με το JavaScript (και επομένως το JSON) από οποιαδήποτε άλλη πλατφόρμα προγραμματισμού.
Η ιστορία και η εξελικτική πορεία του διαδικτύου διαδραμάτισαν σημαντικό ρόλο στη διάδοση του JSON. Σύμφωνα με το Stack Overflow, τώρα τίθενται περισσότερες ερωτήσεις σχετικά με το JSON παρά για άλλες μορφές ανταλλαγής δεδομένων. 18
Σύμφωνα με το Google Trends, ένα παρόμοιο προφίλ φαίνεται να συγκρίνει το ενδιαφέρον αναζήτησης για JSON και XML. 19
Μήπως ο πολλαπλασιασμός του JavaScript σημαίνει ότι το JSON είναι καλύτερο από το XML;
Οι κοινότητες προγραμματιστών επιμένουν ότι το JSON έγινε πιο δημοφιλές από το XML λόγω του περιεκτικού δηλωτικού πεδίου και της απλής σημασιολογίας του. Ο ίδιος ο Ντάγκλας Κρόκφορντ συνοψίζει μερικά από τα πλεονεκτήματα του JSON στο JSON.org: «Το JSON είναι ευκολότερο να κατανοήσουν τόσο οι άνθρωποι όσο και οι μηχανές, καθώς η σύνταξή του είναι ελάχιστη και η δομή της είναι προβλέψιμη». είκοσι Άλλοι επικριτές της XML έχουν επικεντρωθεί στην ευφορία της XML ως «ο φόρος γωνίας». είκοσι ένα Η μορφή XML απαιτεί κάθε ετικέτα ανοίγματος να αντιστοιχεί σε μια ετικέτα κλεισίματος, με αποτέλεσμα περιττές πληροφορίες που μπορούν να κάνουν ένα έγγραφο XML σημαντικά μεγαλύτερο από ένα αντίστοιχο έγγραφο JSON όταν δεν συμπιέζεται. Και, ίσως το πιο σημαντικό, οι προγραμματιστές λένε: 'κάνει επίσης ένα έγγραφο XML πιο δύσκολο να διαβαστεί.' 22
Το JSON έχει επαινεθεί εύκολα λόγω της απλότητας και της στενής σημασιολογίας του και το XML χαρακτηρίζεται ως παλαιό πρότυπο του παρελθόντος λόγω της ευγένειας και της φαινομενικά υπερβολικής πολυπλοκότητας. Πολλά άρθρα και αναρτήσεις ιστολογίου προσφέρουν περιορισμένη προοπτική κατά τη σύγκριση του JSON με το XML, οδηγώντας τους αναγνώστες να πιστεύουν ότι το JSON είναι ένα υποκατάστατο του XML. Αυτή δεν είναι η περίπτωση!
οι τρεις πιθανοί απολογισμοί του καθεστώτος της ηθικής είναι
Η περιορισμένη προοπτική που προσφέρεται από άρθρα και αναρτήσεις ιστολογίου οδήγησε τους αναγνώστες να μειώσουν την XML ως ξεπερασμένη, αφήνοντας πολλούς να αγνοούν τις ισχυρές δυνατότητες που μπορεί να τους βοηθήσουν να βελτιώσουν την αρχιτεκτονική και την ανθεκτικότητα του λογισμικού τους για αλλαγή καθώς και να μειώσουν συστηματικά τον κίνδυνο λογισμικού.
Το JSON είναι πιο δημοφιλές από το XML λόγω της κυριαρχίας του JavaScript ως της πιο διαδεδομένης γλώσσας του σήμερα. Με την επιρροή JavaScript των τάσεων λογισμικού την τελευταία δεκαετία, το JSON συνεχίζει να λαμβάνει όλο και περισσότερη προσοχή από οποιαδήποτε άλλη μορφή ανταλλαγής δεδομένων. Η μπλογκόσφαιρα ακούγεται γρήγορα ότι «το JSON είναι καλύτερο από το XML», αλλά τις περισσότερες φορές, αυτές οι δηλώσεις αφήνονται αδικαιολόγητες ή υποστηρίζονται με απλοϊκές συγκρίσεις σχετικά με τη σημασιολογία και τη λεκτικότητα. Άρα είναι ένα πρότυπο καλύτερο από το άλλο; Η απάντηση σε αυτήν την ερώτηση μπορεί να προέλθει μόνο από μια βαθύτερη αξιολόγηση κάθε προτύπου.
Από το 1990 έως σήμερα, ο ιστός έχει διανύσει πολύ δρόμο. Οι πόλεμοι του προγράμματος περιήγησης μεταξύ Netscape και Microsoft οδήγησαν σε μια καταστροφή απόκλισης του HTML και χρειάστηκε μια λύση για την αποθήκευση του ιστού. Η XML εφευρέθηκε τυποποιεί το XHTML και παρείχε μια ιερή λύση grail για υπολογιστές στο σύνολό του. Από την απόδοση πλήρους σελίδας HTML από διακομιστές back-end έως AJAX και SPA, οι τάσεις στην αρχιτεκτονική ιστού και στην ανάπτυξη προγράμματος περιήγησης έχουν εστιάσει στο JavaScript, οδηγώντας τους προγραμματιστές παγκοσμίως προς το JSON.
Η δημοτικότητα του JSON συσχετίζεται με αυτήν της JavaScript. Με την ευκολία χρήσης και την καμπύλη σύντομης μάθησης, το JavaScript έφερε περισσότερους νέους προγραμματιστές να γράφουν λογισμικό από οποιαδήποτε άλλη γλώσσα. Με την εγγενή ενσωμάτωση της JSON με την πιο δημοφιλή πλατφόρμα ανάπτυξης, δεν προκαλεί έκπληξη το γεγονός ότι τίθενται περισσότερες ερωτήσεις σχετικά με το JSON στο Stack Overflow από οποιαδήποτε άλλη μορφή ανταλλαγής δεδομένων.
Με τις τάσεις λογισμικού τα τελευταία χρόνια φέρνοντας περισσότερους προγραμματιστές JavaScript στον κλάδο, η JSON απέκτησε τον τίτλο της «πιο δημοφιλούς μορφής ανταλλαγής δεδομένων».
Στην επιφάνεια, η μάχη του 'JSON εναντίον XML' πηγαίνει στο JSON, αλλά σε βάθος, υπάρχουν περισσότερα από ό, τι συναντά το μάτι.
Σε Μέρος 2ο αυτού του άρθρου, θα εξετάσουμε προσεκτικά τα τεχνικά πλεονεκτήματα και τις αδυναμίες των JSON και XML και θα αξιολογήσουμε την καταλληλότητα κάθε προτύπου για κοινές εφαρμογές και την επιχείρηση. Μια πιο προσεκτική ματιά στην «ανταλλαγή δεδομένων» θα αποκαλύψει το εύρος της επιρροής της στον κίνδυνο λογισμικού της εφαρμογής συνολικά. Η βαθύτερη κατανόηση των θεμελιωδών διαφορών μεταξύ JSON και XML θα επιτρέψει στους προγραμματιστές να αξιολογήσουν καλύτερα τον κίνδυνο λογισμικού κάθε προτύπου σε σχέση με τις απαιτήσεις του έργου τους - για να δώσουν τη δυνατότητα στους προγραμματιστές να δημιουργήσουν λογισμικό που είναι πιο σταθερό και πιο ανθεκτικό σε σφάλματα και στο μέλλον άγνωστα.
Παρεμπιπτόντως, ένα ενδιαφέρον ζήτημα της προδιαγραφής JSON είναι ότι δεν μπορείτε να μετατρέψετε αντικείμενα JavaScript με αμφίδρομες σχέσεις, όπου οι ιδιότητες θυγατρικών αναφέρονται σε γονικές ιδιότητες, σε JSON. Κάτι τέτοιο θα είχε ως αποτέλεσμα Uncaught TypeError: Converting circular structure to JSON
λάθος. Για παραβίαση αυτού του περιορισμού δείτε Υποστήριξη αμφίδρομης σχέσης στο JSON .
ένας. Το Διαδίκτυο: Μια Ιστορική Εγκυκλοπαίδεια. Χρονολογία, Τόμος 3 , Π. 130 (ABC-CLIO, 2005)
2. Εγχειρίδιο μεταδεδομένων, σημασιολογία και οντολογίες , Π. 109 (World Scientific, Δεκέμβριος 2013)
3. WebDiy.org - Κοινοπραξία World Wide Web (W3C) - Ιστορία
Τέσσερις. «Το JavaSoft στέλνει Java 1.0» (Sun Microsystems, Ιανουάριος 1996)
τεκμηρίωση σχεδιασμού στη μηχανική λογισμικού
5. Χωρική ενεργοποίηση του Διαδικτύου επόμενης γενιάς (David Engen, Ιανουάριος 2002)
6. Η ιστορία του XMLHTTP (AlexHopmann.com, Ιανουάριος 2007)
7. Αρχή Ajax - Σελίδα 2 (Wiley Publishing, Μάρτιος 2007)
8. Ajax: Μια νέα προσέγγιση στις εφαρμογές Ιστού (Jesse James Garrett, Φεβρουάριος 2005)
9. Μια σύντομη ιστορία του Ajax (Aaron Swartz, Δεκέμβριος 2005)
10. «Τι είναι το Kayak.com;» (Corporate Backgrounder, Οκτώβριος 2008)
έντεκα. Εσωτερική περιήγηση: Επέκταση του παραδείγματος πλοήγησης περιήγησης (Netscape, Μάιος 2003)
12. «Ένας αυτοδύναμος ιστότοπος που χρησιμοποιεί DHTML» (SlashDotSlash.com, Ιούλιος 2012)
13. Παράδοση δεδομένων και πληροφοριών μορφοποίησης για να επιτρέπεται ο χειρισμός από την πλευρά του πελάτη (Γραφείο Διπλωμάτων Ευρεσιτεχνίας των ΗΠΑ, Απρίλιος 2002)
Υπολογιστής ρυθμού w2 vs c2c
14. «Τι είναι το Ajax;» Professional Ajax, 2η έκδοση. (Wiley, Μάρτιος 2007)
δεκαπέντε. Ντάγκλας Κρόκφορντ: Το JSON Saga (Yahoo !, Ιούλιος 2009)
16. Πρότυπο ECMA 404 (ECMA International, Δεκέμβριος 2017)
17. Ajax: Μια νέα προσέγγιση στις εφαρμογές Ιστού (Jesse James Garrett, Φεβρουάριος 2005)
18. Τάσεις υπερχείλισης στοίβας (Stack Overflow, 2009-2019)
19. Google Trends (Google, 2004-2019)
είκοσι. JSON: Η εναλλακτική λύση χωρίς λιπαρά στο XML (Crockford, 2006)
είκοσι ένα. XML: Ο γωνιακός φόρος (Κωδικοποίηση τρόμου, Μάιος 2008)
22 Xml χάλια (WikiWikiWeb, 2016)
Το JSON είναι απλούστερο από το XML, αλλά το XML είναι πιο ισχυρό. Για κοινές εφαρμογές, η στενή σημασιολογία του JSON οδηγεί σε κώδικα που είναι πιο εύκολο να ακολουθηθεί. Για εφαρμογές με πολύπλοκες απαιτήσεις σχετικά με την ανταλλαγή δεδομένων, όπως στην επιχείρηση, τα ισχυρά χαρακτηριστικά του XML μπορούν να μειώσουν σημαντικά τον κίνδυνο λογισμικού.
Το JSON είναι μια μορφή ανταλλαγής δεδομένων και παρέχει μόνο μια προδιαγραφή κωδικοποίησης δεδομένων. Το XML είναι μια γλώσσα για τον καθορισμό προσαρμοσμένων γλωσσών σήμανσης και παρέχει πολύ περισσότερα από την ανταλλαγή δεδομένων. Με την αυστηρή σημασιολογία της, η XML καθόρισε ένα πρότυπο για να επιβεβαιώσει την ακεραιότητα δεδομένων των εγγράφων XML, οποιασδήποτε υπο-γλώσσας XML.
Το JSON είναι το καλύτερο για απλές εφαρμογές, που αναπτύχθηκε για να ικανοποιεί απλές απαιτήσεις σχετικά με την ανταλλαγή δεδομένων. Το XML είναι το καλύτερο για εφαρμογές με πολύπλοκες απαιτήσεις σχετικά με την ανταλλαγή δεδομένων, όπως στην επιχείρηση.
Ούτε το JSON ούτε το XML είναι πιο ασφαλές από το άλλο. Και για τα δύο πρότυπα, η ασφάλεια εφαρμόζεται σε ένα λογικό επίπεδο πάνω από το επίπεδο μηνύματος.
Το JSON είναι ταχύτερο επειδή έχει σχεδιαστεί ειδικά για ανταλλαγή δεδομένων. Η κωδικοποίηση JSON είναι σύντομη, η οποία απαιτεί λιγότερα byte για μεταφορά. Οι αναλυτές JSON είναι λιγότερο περίπλοκοι, κάτι που απαιτεί λιγότερο χρόνο επεξεργασίας και γενική μνήμη Η XML είναι πιο αργή, επειδή έχει σχεδιαστεί για πολύ περισσότερα από την απλή ανταλλαγή δεδομένων.