05. JSON Parse

JSON .parse()


Μια κοινή χρήση του JSON είναι η ανταλλαγή δεδομένων προς / από έναν διακομιστή ιστού.

Όταν λαμβάνετε δεδομένα από έναν διακομιστή ιστού, τα δεδομένα είναι πάντα μια συμβολοσειρά.

Η ανάλυση των δεδομένων με JSON.parse() μετατρέπει τα δεδομένα σε αντικείμενο JavaScript.


Παράδειγμα – Ανάλυση του JSON

Φανταστείτε ότι λάβαμε αυτό το κείμενο από έναν web server:

'{ "name":"John", "age":30, "city":"New York"}'

Χρησιμοποιήστε τη συνάρτηση JavaScript JSON.parse()για να μετατρέψετε κείμενο σε αντικείμενο JavaScript:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

Βεβαιωθείτε ότι το κείμενο είναι γραμμένο σε μορφή 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) {
    var myObj = JSON.parse(this.responseText);
    document.getElementById("demo").innerHTML = myObj.name;
  }
};
xmlhttp.open("GET", "json_demo.txt", true);
xmlhttp.send();

Δοκιμάστε το »

Ρίξτε μια ματιά στο json_demo.txt


Array ως JSON

Όταν χρησιμοποιείτε το JSON.parse() σε ένα JSON που προέρχεται από έναν πίνακα, η μέθοδος θα επιστρέψει έναν πίνακα JavaScript αντί για ένα αντικείμενο JavaScript.

Παράδειγμα

Το JSON που επιστρέφεται από το διακομιστή είναι ένας πίνακας:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    var 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


Εξαιρέσεις

Parsing Dates

Τα δεδομένα ημερομηνίας δεν επιτρέπονται σε JSON.

Αν πρέπει να συμπεριλάβετε μια ημερομηνία, γράψτε τη ως μια συμβολοσειρά.

Μπορείτε να το μετατρέψετε ξανά σε ένα αντικείμενο ημερομηνίας αργότερα:

Παράδειγμα

Μετατροπή μιας συμβολοσειράς σε μια ημερομηνία:

var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York"}';
var obj = JSON.parse(text);
obj.birth = new Date(obj.birth);

document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

Δοκιμάστε τον εαυτό σας »

Ή, μπορείτε να χρησιμοποιήσετε τη δεύτερη παράμετρο, της JSON.parse() συνάρτησης, που ονομάζεται reviver .

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

Παράδειγμα

Μετατρέψτε μια συμβολοσειρά σε μια ημερομηνία, χρησιμοποιώντας τη συνάρτηση επανάκλησης :

var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York"}';
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;

Δοκιμάστε τον εαυτό σας »

Parsing Functions

Οι συναρτήσεις δεν επιτρέπονται στο JSON.

Αν πρέπει να συμπεριλάβετε μια συνάρτηση, γράψτε τη σαν μια συμβολοσειρά.

Μπορείτε να το μετατρέψετε ξανά σε μια συνάρτηση αργότερα:

Παράδειγμα

Μετατροπή μιας συμβολοσειράς σε μια συνάρτηση:

var text = '{ "name":"John", "age":"function () {return 30;}", "city":"New York"}';
var obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");

document.getElementById("demo").innerHTML = obj.name + ", " + obj.age()

Δοκιμάστε τον εαυτό σας »

Θα πρέπει να αποφύγετε τη χρήση συναρτήσεων στο JSON, οι συναρτήσεις θα χάσουν το πεδίο εφαρμογής τους και θα πρέπει να χρησιμοποιήσετε eval() για να τις μετατρέψετε σε συναρτήσεις.


Υποστήριξη προγραμμάτων περιήγησης

Η συνάρτηση JSON.parse() περιλαμβάνεται σε όλα τα μεγάλα προγράμματα περιήγησης και στο πιο πρόσφατο πρότυπο ECMAScript (JavaScript).

Οι αριθμοί στον παρακάτω πίνακα καθορίζουν την πρώτη έκδοση του προγράμματος περιήγησης που υποστηρίζει πλήρως τη συνάρτηση JSON.parse() :

Yes8.03.54.010.0

Για παλαιότερα προγράμματα περιήγησης, μια βιβλιοθήκη JavaScript είναι διαθέσιμη στη διεύθυνση https://github.com/douglascrockford/JSON-js .


05. JSON Parse

Κοινοποίηση

Share on facebook
Share on twitter

Ακολουθήστε μας

This website uses cookies to ensure you get the best experience on our website. By continuing to use this website, you agree to their use. To find out more, see here: Privacy Policy
Αρέσει σε %d bloggers: