JavaScript - JSON και μέθοδοι εργασίας με αυτό. JSON για αρχάριους, χρησιμοποιώντας javascript και jQuery

Παιδικά προϊόντα 27.07.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Οι μεταβλητές, οι πίνακες και τα αντικείμενα είναι μια οικεία και βολική μορφή αναπαράστασης δεδομένων. Είναι σύνηθες να περιγράφονται δεδομένα στη γλώσσα του προγράμματος περιήγησης JavaScript, η οποία δεν είναι απαραίτητη στη γλώσσα διακομιστή PHP. Η μορφή JSON σας επιτρέπει να τα συνοψίσετε σε ένα σύνολο και να μην εστιάσετε στη γλώσσα προγραμματισμού. Σε αυτήν την περίπτωση, τα δεδομένα μετατρέπονται σε ζεύγη: "όνομα = τιμή". Η αξία σε καθένα από αυτά μπορεί επίσης να είναι μια συλλογή από τέτοια ζεύγη.

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

Ανταλλαγή δεδομένων: πρόγραμμα περιήγησης - διακομιστής

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

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

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

Η χρήση του κυριλλικού στην ονομασία μεταβλητών είναι ένα πολύ απροσδόκητο φαινόμενο (ανοησία), αλλά λειτουργεί στις τελευταίες εκδόσεις του Chrome, του Firefox, ακόμη και του Internet Explorer 11.

Κυριλλικό και JSON

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

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

Δεν έχει σημασία ποια ακριβώς ήταν η βάση της συντακτικής καινοτομίας - JSON -, αυτό που είναι σημαντικό είναι ότι έδωσε το νόμιμο δικαίωμα και την πραγματική ευκαιρία να οριστεί η αντιστοιχία: "οποιοδήποτε όνομα = οποιαδήποτε αξία".

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

PHP και JSON

Με την αποδοχή δεδομένων σε μορφή JSON, ο διακομιστής (ιδίως μέσω PHP) παρέχει τη δυνατότητα να τα επεξεργαστεί ως έχει και να επιστρέψει το αποτέλεσμα πίσω στο πρόγραμμα περιήγησης σε παρόμοια μορφή. Συστοιχία πηγών PHP:

  • $cJSON = πίνακας ("a"=> "alfa", "b"=> "beta", "g"=> "γάμα").

Μετατροπή σε JSON για παράδοση στο πρόγραμμα περιήγησης:

  • $cJS = json_encode($cJSON).

Αποτέλεσμα:

  • ("a":"alfa","b":"beta","g":"γάμα").

Επιτρέπεται η φωλιά που φαίνεται στη φωτογραφία.

Εδώ ο παραγόμενος πίνακας προστέθηκε με ένα νέο στοιχείο "μέσα στον εαυτό του" με τον αυτόματο δείκτη "0" και μετά ξανά με τον καθορισμένο δείκτη "z".

Η Json_decode() μετατρέπει μια συμβολοσειρά JSON σε πίνακα PHP. Παρόμοια αποτελέσματα μπορούν να επιτευχθούν με χειρισμό συναρτήσεων και explode(). Σε ορισμένες περιπτώσεις αυτή η επιλογή είναι προτιμότερη.

Επίπεδο φωλιάς

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

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

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

αρχεία JSON

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

Προσωπικό επιχείρησης και μορφή JSON: παράδειγμα

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

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

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

Η φωτογραφία δείχνει την κρυφή μνήμη του αντικειμένου που σχηματίζει την εικόνα, ένα παράδειγμα.

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

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

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

XML και JSON

«Υπάρχει χρόνος για όλα» είναι μια κλασική γνώση που έγινε αποδεκτή ως αξίωμα ακόμη και πριν από την εμφάνιση του προγραμματισμού. "Τίποτα δεν εμφανίζεται" - αυτό συνέβη επίσης πριν ο άνθρωπος γράψει το πρώτο κατανοητό πρόγραμμα σε μια τεχνητή γλώσσα.

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

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

Υπήρξαν περιπτώσεις στην πράξη που γράφτηκαν προγράμματα σε BASIC που δεν χρησιμοποιούσαν JSON ως τέτοια, αλλά αποθήκευαν τέλεια ζεύγη «όνομα = τιμή» και τα έκαναν διαθέσιμα στους σωστούς αλγόριθμους την κατάλληλη στιγμή.

Ειδικοί χαρακτήρες ("`", "~", "|", ...) και μορφές δεδομένων

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

Οι λειτουργίες join/split της γλώσσας JavaScript και implode/explode της γλώσσας PHP σάς επιτρέπουν να χρησιμοποιείτε εύκολα και αποτελεσματικά τόσο τις μορφές δεδομένων XML, JSON όσο και τη δική σας έκδοση. Το τελευταίο είναι συχνά βέλτιστο, ενώ τα δύο πρώτα είναι ιδανικά για επιλογές γενικής χρήσης. Εάν οι πληροφορίες μεταφέρονται σε άλλο προγραμματιστή, διακομιστή, αρχείο ή βάση δεδομένων, δεν υπάρχει καλύτερος τρόπος για να βρείτε XML και JSON. Όλοι συνεργάζονται μαζί τους, επομένως η μετάδοση/λήψη πληροφοριών δεν απαιτεί σχόλια.

Χρήση JSON στο Android

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

Σε αυτήν την περίπτωση, χρησιμοποιείται η μορφή JSON. Αυτό μπορεί να είναι αλήθεια, αλλά το ερώτημα δεν είναι η φαινομενικότητα των κοινωνικών δικτύων, αλλά το γεγονός ότι η παρουσίαση πληροφοριών στη μορφή «όνομα = τιμή» είναι πραγματικά βολική τόσο για προγραμματισμό όσο και για χρήση. Σε αντίθεση με την αυστηρή και πολύπλοκη "XML", αυτή είναι μια πραγματικά φιλική προς τον άνθρωπο μορφή.

Συνειρμικοί πίνακες

Συμβαίνει ότι οι μεταβλητές πρέπει να περιγράφονται (JavaScript) ή τουλάχιστον να καθοριστεί μια αρχική τιμή (PHP). Και στις δύο περιπτώσεις, η μεταβλητή μπορεί να αλλάξει τον τύπο της πολύ εύκολα. Η γλώσσα εκτελεί αυτήν τη μετατροπή αυτόματα εάν είναι απαραίτητο.

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

Αυτή η περίσταση είναι ιδιαίτερα έντονη στην PHP, αλλά μπορείτε να την ανεχτείτε, όπως, πράγματι, με το σύμβολο "$" στο όνομα της μεταβλητής και τον συνδυασμό "$this->" μέσα στο αντικείμενο. Προγραμματισμός σε JavaScript και PHP ταυτόχρονα, στην αρχή πραγματικά εκπλήσσεσαι με το πόσο διαφορετικά είναι όλα, αλλά μετά όλα γίνονται τόσο οικεία και φυσικά...

Associative Array -> JSON

Σε αυτό το παράδειγμα, δημιουργείται ένα έγγραφο *.docx χρησιμοποιώντας τη βιβλιοθήκη PHPOffice/PHPWord και ο πίνακας aProperties περιέχει τις ιδιότητες αυτού του εγγράφου (συγγραφέας, εταιρεία, τίτλος, κατηγορία, ημερομηνία δημιουργίας...).

Ο δεύτερος πίνακας περιέχει δεδομένα για τη σελίδα:

  • προσανατολισμός (τοπίο ή κανονικό).
  • κάθετες και οριζόντιες διαστάσεις.
  • εσοχές (περιθώρια αριστερά, πάνω, κάτω, δεξιά).
  • κεφαλίδες και υποσέλιδα.

Το έγγραφο δημιουργείται στον διακομιστή όπου είναι εγκατεστημένη η βιβλιοθήκη PHPOffice/PHPWord. Ο ιστότοπος σάς επιτρέπει να διαχειρίζεστε τις τιμές αυτών των συστοιχιών χρησιμοποιώντας JavaScript. Το αποτέλεσμα σε μορφή JSON επιστρέφει πίσω στον διακομιστή και χρησιμοποιείται σε αλγόριθμους PHP, στις κατασκευές του, δηλαδή σε πίνακες.

Δυναμικές Μεταβλητές

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

Σε αυτό το παράδειγμα, η συνάρτηση GetOjInfo() ανακτά το όνομα και την τιμή της τιμής από ένα αντικείμενο. Αρχικά, το αντικείμενο συμβολοσειράς JSON που έχει εκχωρηθεί στη μεταβλητή ojInfo έχει τρία στοιχεία: Όνομα, ηλικία και εργασία. Λίγο αργότερα προστίθεται η μεταβλητή Status.

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

Η μορφή JSON δεν σχεδιάστηκε για αυτήν την επιλογή, αλλά είναι δυνατή, πρακτική και βολική.

Το JSON (JavaScript Object Notation) είναι μια ελαφριά μορφή αναπαράστασης δεδομένων που βασίζεται σε ένα υποσύνολο σύνταξης JavaScript, πιο συγκεκριμένα σε κυριολεκτικά πίνακα και αντικειμένων. Το JSON είναι μια εναλλακτική στις παραδοσιακές μορφές (απλό κείμενο ή XML) που χρησιμοποιείται κατά την ανταλλαγή δεδομένων μεταξύ διακομιστή και πελάτη. Σε αντίθεση με τις γλώσσες συμβατές με XML και XML, οι οποίες απαιτούν ανάλυση, οι ορισμοί JSON μπορούν απλώς να συμπεριληφθούν σε σενάρια JavaScript. Η μορφή JSON προτάθηκε από τον προγραμματιστή Douglas Crockford.

Ίσως το πάω πολύ μακριά, αλλά για να κατανοήσουμε πραγματικά το JSON, ας καταλάβουμε πρώτα (θυμηθείτε) τη σύνταξη των πινάκων και των αντικειμένων στην κυριολεκτική σημειογραφία JavaScript.

Πίνακες ως κυριολεκτικά
Ένας πίνακας στο JavaScript μπορεί να οριστεί χρησιμοποιώντας τον κατασκευαστή Array, ως εξής:

Var aData = new Array("string", true, 43, null);

Στο JavaScript, οι πίνακες δεν είναι πληκτρολογημένοι, ώστε να μπορούν να αποθηκεύουν διαφορετικούς τύπους δεδομένων. Στο παράδειγμα, ο πίνακας περιέχει μια συμβολοσειρά, ένα boolean, έναν αριθμό και ένα null.

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

Var aData = ["string", true, 43, null];

Μπορείτε να αποκτήσετε πρόσβαση σε μεμονωμένα στοιχεία ενός πίνακα καθορίζοντας το όνομα του πίνακα και τον αριθμό του στοιχείου:

Ειδοποίηση(aData); alert(aData);

Τα αντικείμενα ως κυριολεκτικά
Τα αντικείμενα στο JavaScript ορίζονται χρησιμοποιώντας τον κατασκευαστή Object, ως εξής:

Var oAuto = νέο αντικείμενο(); oAuto.firm = "Audi"; oAuto.model = "A6"; oAuto.year = 2008; oAuto.price = 78000;

Ο ίδιος κώδικας, αλλά σε κυριολεκτική σημείωση θα μοιάζει με αυτό:

Var oAuto = ( "firm":"Audi", "model":"A6", "year":2008, "price":78000 );

Αυτός ο κώδικας δημιουργεί ένα αντικείμενο με τις ιδιότητες εταιρεία, μοντέλο, έτος και τιμή και μπορεί να προσπελαστεί ως εξής:

Ειδοποίηση(oAuto.model); alert(oAuto.year);

αλλά μπορείτε επίσης να χρησιμοποιήσετε τη σύνταξη πίνακα προσεγγίζοντας τις ιδιότητες ενός αντικειμένου με αυτόν τον τρόπο:

Ειδοποίηση(oAuto["μοντέλο"]); alert(oAuto["έτος"]);

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

Var aAuto = [ ( "firm":"BMW", "model":"X5", "year":2007, "price":99000 ), ( "firm":"Audi", "model": "A6" , "year":2008, "price":78000 ), ( "firm":"Volkswagen", "model":"Touareg 7L", "year":2006, "price":45000 ) ];

Δημιουργήσαμε έναν πίνακα aAuto, ο οποίος περιέχει τρία αντικείμενα. Συνδυάζοντας τη σύνταξη για την πρόσβαση σε πίνακες με τη σύνταξη για την πρόσβαση σε αντικείμενα, ας προσπαθήσουμε να πάρουμε το έτος κατασκευής του δεύτερου αυτοκινήτου:

Ειδοποίηση(aAuto.year); // λάβετε το 2008

Μπορείτε να κάνετε το αντίθετο και να περιγράψετε ένα αντικείμενο πίνακα:

Var oAuto = ( "firm":["BMW", "Audi", "Volkswagen"], "model":["X5", "A6", "Touareg 7L"], "έτος":, "τιμή": )

Σε αυτήν την περίπτωση, έχουμε πρόσβαση πρώτα στο αντικείμενο και μετά στον πίνακα μέσα σε αυτό:

Ειδοποίηση(oAuto.year); // λάβετε το 2008

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

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

("επιχείρηση":["BMW", "Audi", "Volkswagen"], "μοντέλο":["X5", "A6", "Touareg 7L"], "έτος":, "τιμή": )

Λάβετε υπόψη ότι το όνομα της μεταβλητής και το κόμμα λείπουν. Η μεταφορά ενός τέτοιου αντικειμένου χρησιμοποιώντας το πρωτόκολλο HTTP θα είναι πολύ γρήγορη, αφού περιέχει ελάχιστους χαρακτήρες. Έχοντας λάβει τέτοια δεδομένα από την πλευρά του πελάτη και γράφοντάς τα σε κάποια μεταβλητή (για παράδειγμα sData), λαμβάνουμε μια σειρά πληροφοριών.
Παρακαλώ σημειώστε: είναι μια συμβολοσειρά και όχι ένα αντικείμενο ή ένα αντικείμενο με πίνακες φωλιασμένους σε αυτό. Ας μετατρέψουμε τη συμβολοσειρά σε αντικείμενο χρησιμοποιώντας τη συνάρτηση eval().

Var oAuto = eval("(" + sData + ")");

Ως αποτέλεσμα, θα λάβετε το αντικείμενο που περιγράψαμε ακριβώς παραπάνω.

Πλεονεκτήματα του JSON έναντι της XML
Ποιο ακριβώς είναι λοιπόν το πλεονέκτημα του JSON έναντι της XML;

Εδώ μιλάμε αποκλειστικά για τα πλεονεκτήματα και τα μειονεκτήματα μόνο από την άποψη της οργάνωσης της ανταλλαγής δεδομένων στο Διαδίκτυο.

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

BMW X5 2007 99000 Audi A6 2008 78000 Volkswagen Touareg 7L 2006 45000

Έτσι φαίνεται σε μορφή XML και παρακάτω σε μορφή JSON:

( "general": ( "cars":[ ( "firm":"BMW", "model":"X5", "year":2007, "price":99000 ), ( "firm":"Audi", "model":"A6", "year":2008, "price":78000 ), ( "firm":"Volkswagen", "model":"Touareg 7L", "year":2006, "price":45000 ) ] ))

Όταν χρησιμοποιείτε τη μορφή JSON, το κέρδος θα είναι 42 byte και χωρίς κενά θα είναι 86 byte. Και αν θυμόμαστε επίσης ότι τα δεδομένα σε μορφή JSON δεν απαιτούν πρόσθετη ανάλυση από την πλευρά του πελάτη, το πλεονέκτημα του JSON έναντι της XML όσον αφορά τη μεταφορά δεδομένων από τον διακομιστή στον πελάτη γίνεται προφανές...

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

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

Μέθοδος 1: Altova XMLSpy

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


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

Μέθοδος 2: Σημειωματάριο ++

Ένα πολυλειτουργικό πρόγραμμα επεξεργασίας κειμένου είναι το πρώτο στη λίστα επιλογών κατάλληλων για άνοιγμα σεναρίων σε μορφή JSON.


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

Μέθοδος 3: AkelPad

Ένα απίστευτα απλό και ταυτόχρονα πλούσιο σε δυνατότητες πρόγραμμα επεξεργασίας κειμένου από Ρώσο προγραμματιστή. Οι μορφές που υποστηρίζει περιλαμβάνουν JSON.


Όπως το Notepad++, αυτή η επιλογή σημειωματάριου είναι επίσης δωρεάν και υποστηρίζει πρόσθετα. Λειτουργεί πιο γρήγορα, αλλά τα μεγάλα και πολύπλοκα αρχεία μπορεί να μην ανοίξουν την πρώτη φορά, γι' αυτό έχετε υπόψη σας αυτήν τη δυνατότητα.

Μέθοδος 4: Επεξεργασία Komodo

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


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

Μέθοδος 5: Υψηλό κείμενο

Ένας άλλος εκπρόσωπος των επεξεργαστών κειμένου με προσανατολισμό κώδικα. Η διεπαφή είναι πιο απλή από αυτή των συναδέλφων της, αλλά οι δυνατότητες είναι ίδιες. Διατίθεται επίσης μια φορητή έκδοση της εφαρμογής.


Δυστυχώς, το Sublime Text δεν είναι διαθέσιμο στα ρωσικά. Το μοντέλο διανομής shareware μπορεί επίσης να ονομαστεί μειονέκτημα: η δωρεάν έκδοση δεν περιορίζεται με κανέναν τρόπο, αλλά από καιρό σε καιρό εμφανίζεται μια υπενθύμιση σχετικά με την ανάγκη αγοράς άδειας.

Μέθοδος 6: NFOPad

Ένα απλό σημειωματάριο είναι επίσης κατάλληλο για την προβολή εγγράφων με την επέκταση JSON.


Το NFOPad είναι κατάλληλο για την προβολή εγγράφων JSON, αλλά υπάρχει μια προειδοποίηση - όταν ανοίγετε μερικά από αυτά, το πρόγραμμα παγώνει. Με τι συνδέεται αυτό το χαρακτηριστικό είναι άγνωστο, αλλά να είστε προσεκτικοί.

Μέθοδος 7: Σημειωματάριο

Τέλος, ο τυπικός επεξεργαστής κειμένου που είναι ενσωματωμένος στα Windows είναι επίσης ικανός να ανοίγει αρχεία JSON.


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

Η JavaScript μας επιτρέπει όχι μόνο να προσθέτουμε διαδραστικότητα σε ιστοσελίδες, αλλά καθιστά δυνατή την εκτέλεση εργασιών που κάποτε ήταν ευθύνη των διακομιστών. Το JSON παρέχει έναν εύκολο τρόπο δημιουργίας και αποθήκευσης δομημένων δεδομένων σε JavaScript. Το JSON είναι πολύ δημοφιλές και είναι μια εξαιρετική εναλλακτική της XML. Το JSON (JavaScript Object Notation), όπως υποδηλώνει το όνομα, βασίζεται στη δημιουργία αντικειμένων javascript. Τα αντικείμενα JavaScript μπορούν εύκολα να χειριστούν και να αναλυθούν χρησιμοποιώντας την ίδια JavaScript.

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

var data=( "firstName" : "Ray" );

alert(data.firstName);

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

Αυτό το παράδειγμα θα εμφανίσει την τιμή της ιδιότητας firstName στο πρόγραμμα περιήγησης.

Δημιουργία αντικειμένου κράτησης θέσης

Ας δημιουργήσουμε ένα πιο ρεαλιστικό παράδειγμα: εισάγουμε τα δεδομένα JSON μας σε ένα αντικείμενο DOM.

var data=("firstName":"Ray");

document.getElementById("placeholder").innerHTML=data.firstName;

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

Προσθήκη πινάκων

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

Var data=("users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined":2012 ), ( "firstName":"John", "lastName":"Jones", "joined":2010 ) ]) document.getElementById("placeholder").innerHTML=data.users.firstName + " " + data.users.lastName+" "+ data.users.joined;

Φαίνεται λίγο περίπλοκο, αλλά στην πραγματικότητα δεν είναι δύσκολο να γίνει κατανοητό. Ένα αντικείμενο JSON δημιουργείται χρησιμοποιώντας σγουρά άγκιστρα. δημιουργείται ένας πίνακας χρησιμοποιώντας αγκύλες. Έτσι, για να οργανώσουμε τα δεδομένα μας, δημιουργήσαμε ένα αντικείμενο χρηστών, στο οποίο τοποθετήσαμε έναν πίνακα. Ο πίνακας περιέχει άλλα αντικείμενα. Κάθε ζεύγος (όνομα/τιμή) χωρίζεται με κόμμα.

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

Var data=("users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined": ( "month":"January", "day":12, "year":2012 ) ), ( "firstName":"John", "lastName":"Jones", "joined": ( "month":"April", "day":28, "year":2010 ) ) ]) έγγραφο. getElementById("placeholder").innerHTML=data.users.firstName + " " + data.users.lastName+"--"+ data.users.joined.month;

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

Υλοποίηση λίστας χρηστών (που διέρχονται από το αντικείμενο JSON)

Λοιπόν, ας χρησιμοποιήσουμε javascript και ας δημιουργήσουμε μια λίστα χρηστών.

Var data = ( "users":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined": ( "month":"January", "day":12, "year":2012 ) ), ( "firstName":"John", "lastName":"Jones", "joined": ( "month":"April", "day":28, "year":2010 ) ) ]) var output ="

    ";) έξοδος+="
"; document.getElementById("placeholder").innerHTML=output;

Για να επαναλάβουμε όλες τις ιδιότητες ενός αντικειμένου, υπάρχει ένα for..στην κατασκευή:

For(κλειδί var στο αντικείμενο) ( // κλειδί - όνομα ιδιότητας // αντικείμενο - τιμή ιδιότητας... )

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

Ανάγνωση JSON από εξωτερικό αρχείο

Θα ήταν ωραίο να αποθηκεύσετε τα δεδομένα σε ένα εξωτερικό αρχείο και να τα διαβάσετε όπως χρειάζεται. Θα χρησιμοποιήσω τη βιβλιοθήκη jQuery και έτσι πρώτα πρέπει να συμπεριλάβουμε τη βιβλιοθήκη jQuery. τότε καλούμε τη συνάρτηση getJSON. Έτσι φαίνεται ο κώδικάς μας:

JSON Sample $.getJSON("data.json", function(data) ( var output="

    "; για (var i σε data.users) ( output+="
  • " + data.users[i].firstName + " " + data.users[i].lastName + "--" + data.users[i].joined.month+"
  • ";) έξοδος+="
"; document.getElementById("placeholder").innerHTML=output; ));

Είναι σχεδόν ο ίδιος κώδικας, αλλά τα δεδομένα παρουσιάζονται. Απλώς ολοκληρώσαμε τα πάντα με μια συνάρτηση getJSON που κάνει όλη τη σκληρή δουλειά της ανάγνωσης του αρχείου. Το αρχείο δεδομένων data.json, ας υποθέσουμε, βρίσκεται στον ίδιο κατάλογο και μοιάζει με αυτό:

("χρήστες":[ ( "firstName":"Ray", "lastName":"Villalobos", "joined": ( "month":"Ιανουάριος", "day":12, "year":2012 ) ) ( "firstName":"John", "lastName":"Jones", "joined": ( "month":"April", "day":28, "year":2010 ) ])

Όπως μπορείτε να δείτε, το JSON είναι πραγματικά εύκολο στην ανάγνωση και μόλις συνηθίσετε στις παρενθέσεις, γίνεται εύκολο να κωδικοποιηθεί.

Ένα μάθημα που εξετάζει τι είναι το JSON και πώς έχει πλεονεκτήματα σε σχέση με άλλες μορφές δεδομένων.

Έννοια του JSON

Το JSON (JavaScript Object Notation) είναι μια μορφή κειμένου για την αναπαράσταση δεδομένων σε σημειογραφία αντικειμένου JavaScript.

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

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

Δομή μορφής JSON

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

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

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

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

Για παράδειγμα, μια δομή αντικειμένου που είναι έγκυρη από την άποψη JavaScript αλλά δεν είναι έγκυρη από την άποψη JSON:

Var person = ( όνομα: "Ivan"; ) // Αντικείμενο JavaScript

Προειδοποίηση: προσπαθήστε να ονομάσετε το κλειδί έτσι ώστε να μην περιπλέκεται η πρόσβαση στα δεδομένα, π.χ. Όταν συνθέτετε ένα όνομα, είναι προτιμότερο να ακολουθείτε τη σημειογραφία της καμήλας ή να χρησιμοποιείτε μια κάτω παύλα ("_") για να συνδέσετε λέξεις.

Η τιμή κλειδιού στο JSON μπορεί να γραφτεί σε μία από τις ακόλουθες μορφές: συμβολοσειρά, αριθμός, αντικείμενο, πίνακας, boolean (τιμή boolean true ή false), null (ειδική τιμή JavaScript).

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

Var person = ( "όνομα" : "Ivan"; "setName": function() ( console.log(this.name); ) ) // Αντικείμενο JavaScript

Για να διαχωρίσετε ένα στοιχείο (ζεύγος κλειδιού-τιμής) από ένα άλλο, χρησιμοποιήστε τον χαρακτήρα κόμματος (,).

Για παράδειγμα, εξετάστε το JSON, το οποίο αποτελείται από διάφορους τύπους δεδομένων.

Προσοχή: η μορφή δεδομένων JSON δεν επιτρέπει σχόλια εντός της δομής της.

Εργασία με JSON σε JavaScript

Σε αντίθεση με ένα αντικείμενο JavaScript, το JSON είναι μια συμβολοσειρά.

Για παράδειγμα:

// για παράδειγμα, η μεταβλητή personData περιέχει μια συμβολοσειρά που είναι JSON var personData = "("name":"Ivan","age":37,"mother":("name":"Olga","age": 58),"παιδιά":["Μάσα","Ιγκόρ","Τάνια"],"παντρεμένος": αληθινός,"σκύλος": μηδενικός)";

Η εργασία με JSON πραγματοποιείται συνήθως προς δύο κατευθύνσεις:

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

    JSON parsing, δηλ. Η μετατροπή μιας συμβολοσειράς JSON σε αντικείμενο JavaScript γίνεται χρησιμοποιώντας τη μέθοδο eval() ή parse().

    Χρησιμοποιώντας τη μέθοδο eval():

    // η μεταβλητή person είναι ένα αντικείμενο JavaScript που λαμβάνεται με την εκτέλεση του κώδικα JSON (string) var person= eval("("+personData+")");

    Χρησιμοποιώντας τη μέθοδο JSON.parse():

    // η μεταβλητή person είναι ένα αντικείμενο JavaScript που λαμβάνεται με ανάλυση της συμβολοσειράς JSON var person = JSON.parse(personData);

    Μετατροπή αντικειμένου JavaScript σε συμβολοσειρά JSON

    Η μετάφραση ενός αντικειμένου JavaScript σε συμβολοσειρά JSON γίνεται χρησιμοποιώντας τη μέθοδο JSON.stringify(). Αυτή η μέθοδος κάνει το αντίθετο από τη μέθοδο JSON.parse().

    Var personString = JSON.strigify(person);

    Πλεονεκτήματα της μορφής JSON

    Η μορφή δεδομένων JSON έχει τα ακόλουθα πλεονεκτήματα:

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

    Λόγω του γεγονότος ότι αυτή η μορφή έχει τόσα πολλά πλεονεκτήματα, έχει χρησιμοποιηθεί όχι μόνο σε JavaScript, αλλά και σε πολλές άλλες γλώσσες, όπως C, Ruby, Perl, Python, PHP κ.λπ.

    Σύγκριση μορφών JSON και XML

    Η μορφή JSON έχει τα ακόλουθα πλεονεκτήματα σε σχέση με τη μορφή XML:

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

    //JSON var personData = "("name":"Ivan","age":37,"mother":("name":"Olga","age":58),,"children":["Masha " ,"Igor","Tanya"],"married": true,"dog": null)"; //Αντικείμενο JavaScript άτομο var person = JSON.parse(personData);

    Ας δούμε τα κύρια σημεία:

    //λάβετε τις τιμές του κλειδιού (ιδιότητας) όνομα person.name; άτομο["όνομα"]; //λάβετε τις τιμές του ονόματος κλειδιού (ιδιότητας) που βρίσκεται στο αντικείμενο μητέρα person.mother.name; //διαγραφή του στοιχείου ηλικίας delete(person.age) //προσθήκη (ή ενημέρωση) κλειδιού (ιδιότητας) person.eye = "καφέ"; //όταν εργάζεστε με πίνακες, πρέπει να χρησιμοποιείτε μεθόδους που έχουν σχεδιαστεί για να λειτουργούν ειδικά με πίνακες //αφαίρεση 1 στοιχείου από τον πίνακα (μέθοδος συναρμολόγησης) person.children.splice(1,1) //προσθέστε ένα στοιχείο στον πίνακα (μέθοδος ώθησης ) άτομο.παιδιά ώθηση("Katya");

    Για να επαναλάβετε τα στοιχεία σε ένα αντικείμενο, μπορείτε να χρησιμοποιήσετε έναν βρόχο for..in:

    Για (κλειδί αυτοπροσώπως) ( if (person.hasOwnProperty(key)) ( //key = κλειδί //value = person console.log("Key = " + key); console.log("Value = " + άτομο) .

    Για να επαναλάβετε τα στοιχεία ενός πίνακα, μπορείτε να χρησιμοποιήσετε τον ακόλουθο βρόχο:

    Για (var i=0; i



    Συνιστούμε να διαβάσετε

    Κορυφή