Maison >interface Web >js tutoriel >Maîtriser la gestion JSON en JavaScript : analyse et chaîne
JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire pour les humains et facile à analyser et à générer pour les machines. JavaScript fournit des méthodes intégrées pour analyser les chaînes JSON en objets et convertir des objets en chaînes JSON.
La méthode JSON.parse() est utilisée pour convertir une chaîne JSON en un objet JavaScript.
JSON.parse(text[, reviver]);
A. Analyse simple
const jsonString = '{"name": "John", "age": 30}'; const parsedData = JSON.parse(jsonString); console.log(parsedData.name); // Output: John console.log(parsedData.age); // Output: 30
B. Utiliser une fonction Reviver
La fonction Reviver peut être utilisée pour personnaliser le processus d'analyse.
const jsonString = '{"name": "John", "birthYear": 1990}'; const parsedData = JSON.parse(jsonString, (key, value) => { if (key === "birthYear") { return 2024 - value; // Convert birth year to age } return value; }); console.log(parsedData.birthYear); // Output: 34
Toujours envelopper JSON.parse() dans un bloc try...catch pour gérer le JSON non valide.
const invalidJson = "{name: 'John', age: 30}"; // Invalid JSON (keys must be in quotes) try { const data = JSON.parse(invalidJson); } catch (error) { console.error("Invalid JSON:", error.message); }
La méthode JSON.stringify() convertit un objet JavaScript en chaîne JSON.
JSON.stringify(value[, replacer[, space]]);
A. Stringification simple
const data = { name: "John", age: 30 }; const jsonString = JSON.stringify(data); console.log(jsonString); // Output: {"name":"John","age":30}
B. Utiliser une fonction de remplacement
La fonction de remplacement filtre ou transforme les propriétés de l'objet.
const data = { name: "John", age: 30, password: "secret" }; const jsonString = JSON.stringify(data, (key, value) => { if (key === "password") return undefined; // Exclude passwords return value; }); console.log(jsonString); // Output: {"name":"John","age":30}
C. Ajout d'une indentation
Le paramètre space formate la sortie avec indentation.
const data = { name: "John", age: 30 }; const jsonString = JSON.stringify(data, null, 2); console.log(jsonString); // Output: // { // "name": "John", // "age": 30 // }
Les références circulaires dans les objets provoquent une erreur de JSON.stringify().
const circularObject = {}; circularObject.self = circularObject; try { JSON.stringify(circularObject); } catch (error) { console.error("Cannot stringify circular object:", error.message); }
Convertissez un objet JavaScript en chaîne JSON avant de l'envoyer dans une requête HTTP.
const data = { name: "John", age: 30 }; fetch("https://example.com/api", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data) });
Enregistrez et récupérez les données au format JSON à l'aide de localStorage.
const data = { name: "John", age: 30 }; localStorage.setItem("user", JSON.stringify(data)); // Storing data const userData = JSON.parse(localStorage.getItem("user")); // Retrieving data console.log(userData.name); // Output: John
Utiliser les méthodes JSON pour créer une copie complète d'un objet (ne fonctionne pas pour les fonctions ou les références circulaires).
JSON.parse(text[, reviver]);
JSON | JavaScript Object |
---|---|
Text format (string) | In-memory data structure |
Keys must be strings (quoted) | Keys can be strings or symbols |
Cannot store methods/functions | Can store methods/functions |
La maîtrise de la gestion JSON est une compétence essentielle pour créer des applications Web modernes basées sur les données.
Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!