JSON.parse()
- Προηγούμενη σελίδα Τύποι Δεδομένων JSON
- Επόμενη σελίδα Σειράσα JSON
Η τυπική χρήση του JSON είναι η μεταφορά δεδομένων μεταξύ web διακομιστών.
Όταν λαμβάνετε δεδομένα από τον διακομιστή web, τα δεδομένα είναι πάντα αλφαριθμητική.
Με JSON.parse()
Αναλύστε δεδομένα που θα γίνουν αντικείμενα JavaScript.
Παράδειγμα – Ανάλυση JSON
Περιγράψτε ότι έχουμε λάβει αυτό το κείμενο από τον διακομιστή web:
'{ "name":"Bill Gates", "age":62, "city":"Seattle"}'
Χρησιμοποιήστε τη συνάρτηση JavaScript JSON.parse()
Μετατρέψτε το κείμενο σε αντικείμενο JavaScript:
var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');
Βεβαιωθείτε ότι το κείμενο αυτό είναι γραμμένο σε μορφή JSON, αλλιώς θα εμφανιστούν σφάλματα γραμματογραφίας.
Χρησιμοποιήστε αντικείμενα JavaScript στη σελίδα σας:
Παράδειγμα
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.name + ", " + obj.age; </script>
Το JSON που προέρχεται από τον διακομιστή
Μπορείτε να ζητήσετε JSON από τον διακομιστή χρησιμοποιώντας αιτήματα AJAX.
Αρκεί να είναι η απάντηση του διακομιστή γραμμένη σε μορφή JSON, μπορείτε να αναλύσετε τη αλφαριθμητική αλφαριθμητική σε αντικείμενο JavaScript.
Παράδειγμα
Χρησιμοποιήστε XMLHttpRequest για να αποκτήσετε δεδομένα από τον διακομιστή:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "json_demo.txt", true); xmlhttp.send();
Ως λίστα JSON
Στο χρήση του JSON που προέρχεται από λίστα JSON.parse()
Μετά, αυτή η μέθοδος θα επιστρέψει λίστα JavaScript,而不是 αντικείμενο JavaScript.
Παράδειγμα
Το JSON που επιστρέφει από τον διακομιστή είναι μια λίστα:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myArr = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myArr[0]; } }; xmlhttp.open("GET", "json_demo_array.txt", true); xmlhttp.send();
Εξαίρεση
Ανάλυση ημερομηνίας
Στο JSON δεν επιτρέπονται τα αντικείμενα ημερομηνίας.
Αν χρειάζεστε να περιλαμβάνετε ημερομηνία, γράψτε την ως συμβολοσειρά.
Μετά μπορείτε να την μετατρέψετε πίσω σε αντικείμενο ημερομηνίας:
Παράδειγμα
Μετατροπή συμβολοσειράς σε ημερομηνία:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"} var obj = JSON.parse(text); obj.birth = new Date(obj.birth); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
ή μπορείτε να χρησιμοποιήσετε JSON.parse()
Ο δεύτερος παράγοντας της συνάρτησης, ονομάζεται reviver.
Αυτό reviver Το παράδειγμα είναι συνάρτηση, που ελέγχει κάθε ιδιότητα πριν από την επιστροφή της τιμής.
Παράδειγμα
Μετατροπή συμβολοσειράς σε ημερομηνία, χρησιμοποιώντας τη συνάρτηση reviver:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}'; var obj = JSON.parse(text, function (key, value) { if (key == "birth") { return new Date(value); } else { return value; }); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Ανάλυση συνάρτησης
Στο JSON δεν επιτρέπονται οι συναρτήσεις.
Αν χρειάζεστε να περιλαμβάνετε συνάρτηση, γράψτε την ως συμβολοσειρά.
Μπορείτε να την μετατρέψετε πίσω σε συνάρτηση αργότερα:
Παράδειγμα
Δημιουργία συμβολοσειράς σε συνάρτηση:
var text = '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"} var obj = JSON.parse(text); obj.age = eval("(" + obj.age + ")"); document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();
Πρέπει να αποφύγετε τη χρήση συναρτήσεων στο JSON, καθώς οι συναρτήσεις χάνουν το ορισμό τους και θα χρειαστεί να χρησιμοποιήσετε eval()
Μετατρέψτε τα πίσω σε συνάρτησεις.
Υποστήριξη προγράμματος περιήγησης
Όλα τα κύρια προγράμματα περιήγησης και οι πιο πρόσφατοι πρότυπα ECMAScript (JavaScript) περιέχουν JSON.parse()
Συνάρτηση:
Τα αριθμήματα στον παρακάτω πίνακα καθορίζουν την πλήρη υποστήριξη JSON.parse()
Η πρώτη έκδοση του πρόγραμματος περιήγησης για τη συνάρτηση:
Ναι | 8.0 | 3.5 | 4.0 | 10.0 |
Για πιο παλιά προγράμματα περιήγησης, οι παρακάτω διευθύνσεις περιέχουν βιβλιοθήκες JavaScript που είναι διαθέσιμες:
- Προηγούμενη σελίδα Τύποι Δεδομένων JSON
- Επόμενη σελίδα Σειράσα JSON