Τι είναι το JSON και γιατί να το χρησιμοποιήσω;

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

Χτίζω εφαρμογές χρησιμοποιώντας PHP, MySQL και Javascript / HTML για αρκετό καιρό, και αν το JSON μπορεί να κάνει κάτι για να κάνει τη ζωή μου ευκολότερη ή τον κώδικά μου καλύτερο ή τη διεπαφή χρήστη μου καλύτερη, τότε θα ήθελα να το μάθω. Μπορεί κάποιος να μου δώσει μια συνοπτική εξήγηση;

Λύση

Το JSON (JavaScript Object Notation) είναι ένας ελαφρύς μορφότυπος που χρησιμοποιείται για την ανταλλαγή δεδομένων. Βασίζεται σε ένα υποσύνολο της γλώσσας JavaScript (ο τρόπος με τον οποίο κατασκευάζονται τα αντικείμενα στη JavaScript). Όπως [αναφέρεται στο MDN][1], κάποια JavaScript δεν είναι JSON και κάποια JSON δεν είναι JavaScript. Ένα παράδειγμα όπου αυτό χρησιμοποιείται είναι οι απαντήσεις των υπηρεσιών ιστού. Τις 'παλιές' μέρες, οι υπηρεσίες ιστού χρησιμοποιούσαν την XML ως την κύρια μορφή δεδομένων για τη μετάδοση των δεδομένων επιστροφής, αλλά από τότε που εμφανίστηκε το JSON (Η μορφή JSON καθορίζεται στο [RFC 4627][2] του Douglas Crockford), είναι η προτιμώμενη μορφή επειδή είναι πολύ πιο ελαφριά Μπορείτε να βρείτε πολλές περισσότερες πληροφορίες στον επίσημο [JSON δικτυακό τόπο][3]. Το JSON βασίζεται σε δύο δομές:

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

    Δομή JSON


Σχόλια (9)

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

Σχόλια (0)

η κοινή σύντομη απάντηση είναι: αν χρησιμοποιείτε AJAX για να κάνετε αιτήσεις δεδομένων, μπορείτε εύκολα να στέλνετε και να επιστρέφετε αντικείμενα ως συμβολοσειρές JSON. Οι διαθέσιμες επεκτάσεις για Javascript υποστηρίζουν κλήσεις toJSON() σε όλους τους τύπους javascript για την αποστολή δεδομένων στον διακομιστή σε ένα αίτημα AJAX. Οι απαντήσεις AJAX μπορούν να επιστρέφουν αντικείμενα ως συμβολοσειρές JSON, οι οποίες μπορούν να μετατραπούν σε αντικείμενα Javascript με μια απλή κλήση eval, π.χ. εάν η συνάρτηση AJAX someAjaxFunctionCallReturningJson επέστρεφε

"{ \"FirstName\" : \"Fred\", \"LastName\" : \"Flintstone\" }"

θα μπορούσατε να γράψετε σε Javascript

var obj = eval("(" + someAjaxFunctionCallReturningJson().value + ")");
alert(obj.FirstName);
alert(obj.LastName);

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

  • Ενημέρωση (δέκα χρόνια αργότερα): Χρησιμοποιήστε το JSON.parse.
Σχόλια (2)