Επιστροφή στο blog

Μια επισκόπηση της μορφής κοινής χρήσης δεδομένων JSON

Μια επισκόπηση της μορφής κοινής χρήσης δεδομένων JSON

JavaScript Object Notation (JSON για συντομία και προφέρεται περίπου όπως το όνομα «Jason»), είναι ένας τύπος μορφότυπου κοινής χρήσης δεδομένων. Όπως αποδεικνύεται από το όνομά του, το JSON προέρχεται από το JavaScript, αλλά δεν είναι ο αποκλειστικός ιδιοκτήτης κώδικα που επιτρέπει τη χρήση του. Στην πραγματικότητα, πολλές άλλες γλώσσες προγραμματισμού το έχουν διαθέσιμο για χρήση, συμπεριλαμβανομένων των Ruby, PHP, Python, και Java.

Όταν υπάρχει από μόνο του, το αρχείο JSON χρησιμοποιεί την επέκταση .json, αλλά επειδή είναι ένας μορφότυπος που μεταδίδεται εύκολα μεταξύ ενός διακομιστή ιστού και ενός πελάτη (ή προγράμματος περιήγησης), μπορεί επίσης να οριστεί ως μορφότυπος .html. Σε αυτήν την περίπτωση, μπορεί είτε να είναι ένα αντικείμενο που έχει εκχωρηθεί σε μια μεταβλητή είτε να εμφανίζεται ως συμβολοσειρά JSON μέσα σε εισαγωγικά.

Το JSON είναι μια καλή εναλλακτική λύση για το XML, καθώς είναι πιο ευανάγνωστο και απαιτεί ελάχιστη μορφοποίηση. Αυτό το σεμινάριο θα σας διδάξει σχετικά με τα δεδομένα που μπορούν να αποθηκευτούν σε αρχεία JSON, καθώς και τη γενική σύνταξη και δομή του μορφότυπου.

Δομή & Σύνταξη

Ένα αντικείμενο JSON είναι ένας μορφότυπος δεδομένων που χρησιμοποιεί άγκιστρα για την αναπαράσταση ζευγών κλειδιού-τιμής. Όταν εργάζεστε με JSON, θα το βλέπετε συχνότερα να αποδίδεται σε αρχεία .json, αλλά στο πλαίσιο ενός προγράμματος, μπορεί επίσης να υπάρχει ως συμβολοσειρά ή ως αντικείμενο JSON.

Ακολουθεί ένα παράδειγμα για το πώς μοιάζει ένα αντικείμενο JSON:

json object

Αν και αυτό είναι ένα μάλλον σύντομο παράδειγμα, και τα αντικείμενα JSON μπορεί να είναι πολύ μεγαλύτερα, δείχνει με ακρίβεια πώς ρυθμίζεται συνήθως ο μορφότυπος με δύο άγκιστρα σε κάθε άκρη, με ζεύγη κλειδιού-τιμής να γεμίζουν τον ενδιάμεσο χώρο. Η πλειονότητα των δεδομένων στο JSON είναι ενθυλακωμένη σε ένα στοιχείο JSON.

Υπάρχει μια άνω-κάτω τελεία που οριοθετεί τα ζεύγη κλειδιού-τιμής (“key” : “value”). Κάθε ένα από αυτά τα ζεύγη διαχωρίζεται ως διαφορετικό μέλος της λίστας με ένα κόμμα. Αυτό έχει ως αποτέλεσμα το μεσαίο τμήμα μιας μορφοποίησης JSON να διαμορφώνεται με τον ακόλουθο τρόπο: “key” : “value”, “key” : “value”, “key” : “value”. Στο παραπάνω παράδειγμα, "name" : "Akshay" είναι το πρώτο ζεύγος κλειδιού-τιμής, για παράδειγμα.

Τα κλειδιά σε κάθε αντικείμενο πρέπει να είναι μοναδικά, μπορούν να αποδοθούν ως οποιαδήποτε έγκυρη συμβολοσειρά, κλεισμένα σε διπλά εισαγωγικά (“key”), και τοποθετούνται πάντα στην αριστερή πλευρά της άνω-κάτω τελείας. Αν και επιτρέπονται τα κενά διαστήματα στις συμβολοσειρές κλειδιών (όπως στο “first name”), αυτό παρουσιάζει μια πιο δύσκολη προσέγγιση από την πλευρά του προγραμματισμού όσον αφορά την πρόσβαση. Για τον λόγο αυτό, η κοινή προγραμματιστική πρακτική είναι η αντικατάσταση των κενών διαστημάτων στα κλειδιά με κάτω παύλες (“first_name”).

Οι τιμές στο JSON τοποθετούνται στα δεξιά της άνω-κάτω τελείας. Στη βασικότερη ανάλυσή τους, αυτές πρέπει να είναι ένας από τους 6 συγκεκριμένους τύπους δεδομένων:

  • Αριθμοί
  • Αντικείμενα
  • Πίνακες
  • Συμβολοσειρές
  • True ή False (Boolean)
  • Null

Η επόμενη ενότητα θα καλύψει πιο σύνθετους τύπους δεδομένων του πίνακα αντικειμένων JSON, με κάθε τιμή που περνάει στο JSON να διατηρεί τη σύνταξή της. Με άλλα λόγια, οι συμβολοσειρές θα συνεχίσουν να εμφανίζονται σε εισαγωγικά, ενώ η αριθμητική τιμή όχι.

Ο μορφότυπος JSON συνήθως παρατίθεται σε μορφή πολλαπλών γραμμών κατά σύμβαση. Ωστόσο, μπορεί επίσης να μορφοποιηθεί σε μία μόνο γραμμή:

single line json

Αυτός ο τύπος μορφοποίησης είναι πιο συνηθισμένος όταν συναντάμε μια συμβολοσειρά JSON ή μέσα σε έναν άλλο τύπο αρχείου. Όταν εργάζεστε με τεράστια σύνολα δεδομένων, η εγγραφή των άνω-κάτω τελειών και των ζευγών κλειδιού-τιμής σε ξεχωριστές γραμμές κάνει τη λίστα πιο ευανάγνωστη για το ανθρώπινο μάτι, καθώς το JSON στερείται της διαχωριστικής βοήθειας των κενών διαστημάτων:

json object

Αν και το αντικείμενο JSON μοιάζει με τη JavaScript, είναι σημαντικό να έχετε κατά νου ότι πρόκειται για διαφορετικούς μορφότυπους. Ενώ η JavaScript επιτρέπει τη χρήση συναρτήσεων, το JSON δεν την επιτρέπει. Αυτό που κάνει το JSON τόσο πολύτιμο είναι η συμβατότητά του μεταξύ διαφορετικών γλωσσών, επιτρέποντας σε όλες τις πλατφόρμες προγραμματισμού να το ερμηνεύουν.

Μέχρι στιγμής έχουμε δει μόνο τον μορφότυπο JSON στην πιο απλή του μορφή, αλλά μπορεί να εξελιχθεί ιεραρχικά και με πιο σύνθετο τρόπο όταν περιλαμβάνει ένθετα αντικείμενα και πίνακες. Στην επόμενη ενότητα, θα δούμε πιο προχωρημένο JSON.

Χρήση σύνθετων τύπων JSON

Εκτός από τους ένθετους πίνακες, το JSON μπορεί επίσης να αποθηκεύσει ένθετα αντικείμενα. Αυτά τα αντικείμενα και οι πίνακες θα μεταφέρονται ως τιμές για κλειδιά και θα συσχετίζονται με κλειδιά για να σχηματίσουν ζεύγη κλειδιού-τιμής.

  • Σχηματισμός ένθετων αντικειμένων

Στο ακόλουθο users.json εικόνα αρχείου, υπάρχει ένα ένθετο αντικείμενο JSON που μεταδίδεται για καθέναν από τους τέσσερις χρήστες (“akshay”, “sam”, “Andrew”, “James”). Κάθε χρήστης διαθέτει τα δικά του ένθετα κλειδιά (“location” και “username”):

nested

Το επισημασμένο τμήμα αντιπροσωπεύει ένα παράδειγμα του πρώτου ένθετου αντικειμένου. Τα άγκιστρα χρησιμοποιούνται στο παραπάνω παράδειγμα για τη δημιουργία ενός ένθετου αντικειμένου JSON με ένα αντίστοιχο όνομα χρήστη και λεπτομέρειες θέσης για καθέναν από τους τέσσερις χρήστες. Κατά τη χρήση αντικειμένων, τα κόμματα χρησιμοποιούνται για τη διάκριση των στοιχείων με βάση το συγκεκριμένο χαρακτηριστικό του χρήστη.

  • Σχηματισμός ένθετων πινάκων

Οι πίνακες Javascript που μεταβιβάζονται ως τιμή μπορούν επίσης να αξιοποιηθούν για τη φωλιάσμα δεδομένων εντός της μορφής JSON. Αυτό γίνεται χρησιμοποιώντας [ ] (αγκύλες) στο τέλος των τύπων πινάκων, με τους πίνακες να είναι δομημένες λίστες που περιλαμβάνουν μοναδικούς τύπους δεδομένων:

array

Στο επισημασμένο τμήμα των παραπάνω παραδειγμάτων, οι 2 ιστότοποι προφίλ κοινωνικών δικτύων και οι 2 σύνδεσμοι ιστότοπων του Akshay’s χρησιμοποιούνται ο καθένας μέσα σε έναν πίνακα ένθετων πληροφοριών, λόγω της παρουσίας των αγκυλών. Συμπεριλαμβάνοντας τη φωλιάσμα με αυτόν τον τρόπο στο JSON, μπορούμε να επιτύχουμε μεγαλύτερη ευελιξία στην εργασία με ιεραρχικό και πολύπλοκο περιεχόμενο δεδομένων.

  • Σύγκριση XML

Extensible Markup Language (XML) παρέχει μια μέθοδο για την αποθήκευση δεδομένων στα οποία μπορούν να έχουν πρόσβαση τόσο μηχανές όσο και άνθρωποι. Όπως το JSON, έτσι και η XML μπορεί να χρησιμοποιηθεί από πολλές γλώσσες προγραμματισμού. Σε αντίθεση με το JSON, η XML περιλαμβάνει σημαντικά περισσότερο κείμενο και, ως εκ τούτου, είναι πιο περίπλοκη και χρονοβόρα στη σύνταξη. Ενώ μια τυπική συνάρτηση μπορεί να αναλύσει το JSON, η XML απαιτεί έναν ειδικό αναλυτή XML. Επιπλέον, η XML δεν μπορεί να κάνει χρήση πινάκων. Ας συγκρίνουμε τα ίδια δεδομένα μορφοποιημένα σε XML έναντι JSON:

xml vs json

Η XML απαιτεί σημαντικά περισσότερο κείμενο και καταλαμβάνει περισσότερο χώρο. Απαιτεί επίσης ετικέτες τέλους, ενώ το JSON είναι πολύ πιο συμπαγές και απλά οργανωμένο. Όσοι είναι εξοικειωμένοι με την HTML μπορούν πιθανώς να παρατηρήσουν την ομοιότητα στη χρήση ετικετών από την XML.

Πριν αποφασίσετε ποια μορφή θα χρησιμοποιήσετε, βοηθά πάντα να αξιολογήσετε το εύρος και τις ανάγκες του έργου. Το JSON είναι λιγότερο φλύαρο, πιο λιτό και γρήγορο στη χρήση για εφαρμογές AJAX και άλλες καταστάσεις. Ο τύπος του έργου θα βοηθήσει να αποσαφηνιστούν οι καταλληλότερες δομές δεδομένων προς χρήση.

Μάθετε περισσότερα για το JSON

Το JSON είναι μια ευέλικτη και φυσική μορφή που μπορεί να εφαρμοστεί σε πολλές γλώσσες προγραμματισμού. Θα μπορείτε να βρείτε την πλήρη λίστα των υποστηριζόμενων γλωσσών στη σελίδα “Introducing JSON” page. Επιπλέον, πληροφορίες ανάλυσης και συμβατότητας μπορούν να βρεθούν στη “iQuery library.”

Στο τέλος, πιθανότατα δεν θα γράφετε απλό JSON πολύ συχνά. Αντίθετα, θα το αντλείτε από πηγές δεδομένων ή θα μεταφράζετε άλλα αρχεία δεδομένων σε JSON. Χρησιμοποιώντας το εργαλείο ανοιχτού κώδικα Mr. Data Converter, μπορείτε να μεταφράσετε δεδομένα CSV ή οριοθετημένα με στηλοθέτες που βρίσκονται σε προγράμματα υπολογιστικών φύλλων σε JSON. Με την πλατφόρμα με άδεια Creative Commons utilities-online.info, μπορείτε να μεταφράσετε XML σε JSON και αντίστροφα. Όταν χρησιμοποιείτε αυτοματοποιημένο λογισμικό, ελέγξτε ξανά τις αναφορές για να εξαλείψετε τυχόν πλεονασμούς.

Μπορείτε επίσης να χρησιμοποιήσετε το JSONLint για να επαληθεύσετε το JSON σας και το JFiddle για να το αξιολογήσετε σε ένα πλαίσιο ανάπτυξης ιστού κατά τη μετατροπή άλλων τύπων στη μορφή JSON.

Συμπέρασμα

Αποκτώντας αυξημένη API υποστήριξη (συμπεριλαμβανομένου του Twitter API), το JSON είναι μια ελαφριά μορφή δεδομένων που προάγει την απλότητα στην επεξεργασία, αποθήκευση και κοινή χρήση δεδομένων. Εφόσον δεν θα δημιουργείτε τα δικά σας αρχεία .json αλλά μάλλον θα τα λαμβάνετε από άλλες πηγές, είναι πιο σημαντικό να σκεφτείτε πώς να χρησιμοποιήσετε το JSON στα προγράμματά σας παρά τη δομή του.

Ακολουθούν περαιτέρω πόροι από το ιστολόγιό μας που θα σας βοηθήσουν να προγραμματίσετε με JavaScript:

Καλό προγραμματισμό!

author

Akshay Nagpal

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.