Μορφή JSON

Μορφή JSON

Μορφή JSON

JSON Είναι μια μορφή ανταλλαγής δεδομένων που βασίζεται σε κείμενο, που σημαίνει ότι είναι εύκολο να διαβαστεί τόσο για ένα άτομο όσο και για ένα πρόγραμμα. Το όνομά του αντιστοιχεί στο αγγλικό ακρωνύμιο του Γράφημα αντικειμένου JavaScript και τυποποιείται ως ECMA-404. Αν και είναι μια μορφή πολύ κοντά στη σύνταξη το JavaScript, επειδή είναι πολύ εύκολη η επεξεργασία για την κωδικοποίηση δεδομένων αντικειμένων ή η απόκτησή τους, χρησιμοποιείται επίσης σε πολλές άλλες γλώσσες προγραμματισμού (C, C + +, Java, Python...) ως εναλλακτική λύση, για παράδειγμα, στην XML, η οποία έχει παρόμοιο στόχο αλλά, επειδή περιλαμβάνει περισσότερες μετα-πληροφορίες, απαιτεί περισσότερο κείμενο και επομένως καταλαμβάνει περισσότερο χώρο, καταναλώνει περισσότερο εύρος ζώνης και απαιτεί περισσότερους πόρους για την κωδικοποίηση και την αποκωδικοποίηση τις πληροφορίες που περιέχει. JSON.

Πίνακας Περιεχομένων

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

    Περίγραμμα της σύνταξης ενός αντικειμένου σε μορφή JSON

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

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

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

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

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

    Όπως ακριβώς συμβαίνει με το JavaScript, οι κωδικοί διαφυγής χρησιμοποιούνται για να συμπεριλάβουν ορισμένους χαρακτήρες σε μια συμβολοσειρά κειμένου. Ο πιο γενικός τρόπος είναι να χρησιμοποιήσετε κωδικούς unicode που εκφράζονται με τη γραμμή διαφυγής, το γράμμα u και τέσσερα δεκαεξαδικά ψηφία με τη μορφή "\u263A" για να αναφερθώ στο ☺ για παράδειγμα.

    Οι τυπικοί χαρακτήρες, που υπάρχουν στις περισσότερες γλώσσες (παρόμοιοι με τη C) είναι οι ακόλουθοι

    • Αναστροφή \b Κώδικας ASCII 8 (0x08)
    • Πινακοποιητής \t Κώδικας ASCII 9 (0x09) Συνήθως αναπαρίσταται ως HT (οριζόντιος πίνακας)
    • Νέα γραμμή \n Κώδικας ASCII 10 (0x0A) Συνήθως αντιπροσωπεύεται ως LF (τροφοδοσία γραμμής)
    • Νέα σελίδα \f Κώδικας ASCII 12 (0x0C) Συνήθως αντιπροσωπεύεται ως FF (τροφοδοσία φόρμας)
    • Επιστροφή \r Κώδικας ASCII 13 (0x0D) Συνήθως αντιπροσωπεύεται ως CR (επιστροφή μεταφοράς)
    • Εισαγωγικά \" Κώδικας ASCII 34 (0x22)
    • split bar \/ Κώδικας ASCII 57 (0x2F)
    • Πίσω κάθετο \\ Κώδικας ASCII 134 (0x5C)
    • κωδικός unicode \uXXXX

    Που προέρχονται από C (και σχετίζεται με Unix και τα παρόμοια, όπως GNU / Linux) το τέλος της γραμμής συνήθως αντιπροσωπεύεται με \n και είναι αυτό που πρέπει να επιλεγεί JSON αλλά είναι ενδιαφέρον να θυμόμαστε ότι ορισμένα λειτουργικά συστήματα προτιμούν άλλες εναλλακτικές. Τα Windows συνήθως αντιπροσωπεύουν με \r\n τελειώματα γραμμών και Mac OS (πριν από το OS \r

    Όσον αφορά την αριθμητική μορφή, η αναφορά είναι επίσης το JavaScript. Το δεκαδικό διαχωριστικό είναι η τελεία, η παύλα (ASCII 45 0x2D) χρησιμοποιείται ως αρνητικό πρόσημο και το σημειογραφία σε εκθετική μορφή (Επιστημονική σημειογραφία) χρήσεις E ως ένδειξη (που μπορεί να είναι κεφαλαίο ή πεζό)

    Όπως είπα στην αρχή, για να χρησιμοποιηθούν τα δεδομένα, τα οποία θα έχουν ληφθεί ως κείμενο, οι διαφορετικές γλώσσες προγραμματισμού έχουν λειτουργίες ανάλυσης και ανάθεσης. Το παρακάτω παράδειγμα δείχνει πώς θα χρησιμοποιηθούν το JavaScript. Για να μπορείτε να το χρησιμοποιήσετε από κονσόλα, περιλαμβάνεται η εκχώρηση δεδομένων JSON Για την αποφυγή πιθανών σφαλμάτων ανάλογα με το πρότυπο ECMA που χρησιμοποιεί ο διερμηνέας το JavaScript γίνεται η ανάθεση αντικειμένου JSON σε μια ενιαία γραμμή. Έκδοση 6 του 2016 (ECMA-262) υποστηρίζει συμβολοσειρές πολλαπλών γραμμών, η έκδοση 5 (μέχρι το 2011) πρέπει να προσθέσει κώδικα διαφυγής \ και στα προηγούμενα πρέπει να το λύσετε με το χέρι ή να χρησιμοποιήσετε μία μόνο γραμμή.

    Μια προειδοποίηση για να μην μπερδεύουμε τους νέους χρήστες το JavaScript. Μέσα στον κωδικό το JavaScript Δεν είναι απαραίτητο να χρησιμοποιήσετε μια συμβολοσειρά κειμένου για να δημιουργήσετε ένα αντικείμενο, στο προηγούμενο παράδειγμα χρησιμοποιείται για την προσομοίωση δεδομένων που φτάνουν, για παράδειγμα, από έναν διακομιστή. Για να αντιστοιχίσετε ένα αντικείμενο σε μια μεταβλητή, κάτι σαν:

    Αυτό το αντικείμενο θα μπορούσε να μετατραπεί σε κείμενο, για παράδειγμα, με τη συνάρτηση stringify ως εξής:

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

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

    Δημοσίευση σχολίου

    Μπορεί να έχετε χάσει