JSON.parse()

Η τυπική χρήση του 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_demo.txt

Ως λίστα 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_demo_array.txt

Εξαίρεση

Ανάλυση ημερομηνίας

Στο 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 που είναι διαθέσιμες:

https://github.com/douglascrockford/JSON-js