JSON .parse()
Une utilisation courante de JSON consiste à échanger des données vers/depuis un serveur Web.
Lors de la réception de données d'un serveur Web, les données sont toujours une chaîne.
Analysez les données avec JSON.parse()
, et les données deviennent un objet JavaScript.
Exemple - Analyse JSON
Imaginez que nous recevions ce texte d'un serveur Web :
'{"name":"John", "age":30, "city":"New York"}'
Utilisez la fonction JavaScript JSON.parse()
pour convertir du texte en objet JavaScript :
const obj = JSON.parse('{"name":"John", "age":30, "city":"New
York"}');
Assurez-vous que le texte est au format JSON, sinon vous obtiendrez une erreur de syntaxe.
Utilisez l'objet JavaScript dans votre page :
Exemple
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = obj.name;
</script>
Tableau en tant que JSON
Lorsque vous utilisez le JSON.parse()
sur un JSON dérivé d'un tableau, la méthode renverra un tableau JavaScript, au lieu d'un objet JavaScript.
Exemple
const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);
Des exceptions
Analyse des dates
Les objets de date ne sont pas autorisés dans JSON.
Si vous devez inclure une date, écrivez-la sous forme de chaîne.
Vous pouvez le reconvertir en objet date ultérieurement :
Exemple
Convertissez une chaîne en une date :
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Ou, vous pouvez utiliser le deuxième paramètre de la JSON.parse()
fonction, appelé revivrer .
Le paramètre revivrer est une fonction qui vérifie chaque propriété, avant de renvoyer la valeur.
Exemple
Convertissez une chaîne en date à l'aide de la fonction revivre :
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const 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;
Fonctions d'analyse
Les fonctions ne sont pas autorisées dans JSON.
Si vous devez inclure une fonction, écrivez-la sous forme de chaîne.
Vous pouvez le reconvertir en fonction plus tard :
Exemple
Convertissez une chaîne en fonction :
const text =
'{"name":"John", "age":"function () {return
30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " +
obj.age();
Vous devez éviter d'utiliser des fonctions dans JSON, les fonctions perdront leur portée et vous devrez les utiliser eval()
pour les reconvertir en fonctions.