JSON .stringify()
Une utilisation courante de JSON consiste à échanger des données vers/depuis un serveur Web.
Lors de l'envoi de données à un serveur Web, les données doivent être une chaîne.
Convertissez un objet JavaScript en chaîne avec JSON.stringify()
.
Stringifier un objet JavaScript
Imaginez que nous ayons cet objet en JavaScript :
const obj = {name: "John", age: 30, city: "New York"};
Utilisez la fonction JavaScript JSON.stringify()
pour le convertir en chaîne.
const myJSON = JSON.stringify(obj);
Le résultat sera une chaîne suivant la notation JSON.
myJSON
est maintenant une chaîne, et prête à être envoyée à un serveur :
Exemple
const obj = {name: "John", age: 30, city: "New York"};
const myJSON =
JSON.stringify(obj);
Vous apprendrez comment envoyer du JSON à un serveur dans les prochains chapitres.
Stringifier un tableau JavaScript
Il est également possible de stringifier des tableaux JavaScript :
Imaginez que nous ayons ce tableau en JavaScript :
const arr = ["John", "Peter", "Sally", "Jane"];
Utilisez la fonction JavaScript JSON.stringify()
pour le convertir en chaîne.
const myJSON = JSON.stringify(arr);
Le résultat sera une chaîne suivant la notation JSON.
myJSON
est maintenant une chaîne, et prête à être envoyée à un serveur :
Exemple
const arr = ["John", "Peter", "Sally", "Jane"];
const myJSON =
JSON.stringify(arr);
Vous apprendrez comment envoyer une chaîne JSON à un serveur dans les prochains chapitres.
Stocker des données
Lors du stockage des données, les données doivent être dans un certain format, et quel que soit l'endroit où vous choisissez de les stocker, le texte est toujours l'un des formats légaux.
JSON permet de stocker des objets JavaScript sous forme de texte.
Exemple
Stockage des données dans le stockage local
// Storing data:
const myObj = {name: "John",
age: 31, city: "New York"};
const myJSON =
JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
let text = localStorage.getItem("testJSON");
let obj =
JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Des exceptions
Chaîner les dates
Dans JSON, les objets de date ne sont pas autorisés. La JSON.stringify()
fonction convertira toutes les dates en chaînes.
Exemple
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
Vous pouvez reconvertir la chaîne en un objet date au niveau du récepteur.
Fonctions de chaîne
Dans JSON, les fonctions ne sont pas autorisées en tant que valeurs d'objet.
La JSON.stringify()
fonction supprimera toutes les fonctions d'un objet JavaScript, à la fois la clé et la valeur :
Exemple
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
Cela peut être omis si vous convertissez vos fonctions en chaînes avant d'exécuter la JSON.stringify()
fonction.
Exemple
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
Si vous envoyez des fonctions à l'aide de JSON, les fonctions perdront leur portée et le récepteur devra utiliser eval() pour les reconvertir en fonctions.