Fonction JSON.stringify (JavaScript)
Syntaxe : JSON.stringify(value [, replacer] [, space])
Convertissez une valeur JavaScript en chaîne de notation d'objet JavaScript (Json).
valeur
Requis. La valeur JavaScript à convertir (généralement un objet ou un tableau).
remplaçant
Facultatif. La fonction ou le tableau utilisé pour convertir le résultat.
Si le remplaçant est une fonction, JSON.stringify appellera la fonction, en transmettant la clé et la valeur de chaque membre. Utilisez la valeur de retour au lieu de la valeur d'origine. Si cette fonction renvoie undefined, le membre est exclu. La clé de l'objet racine est une chaîne vide : "".
Si le remplaçant est un tableau, seuls les membres avec des valeurs clés dans le tableau sont convertis. Les membres sont convertis dans le même ordre que les clés du tableau. Lorsque l'argument value est également un tableau, le tableau de remplacement est ignoré.
espace
Facultatif. Ajoute une indentation, des espaces et des nouvelles lignes au texte JSON de la valeur de retour pour le rendre plus facile à lire.
Si l'espace est omis, le texte de la valeur de retour sera généré sans aucun espace supplémentaire.
Si l'espace est un nombre, le texte de la valeur de retour est indenté du nombre d'espaces spécifié à chaque niveau. Si l'espace est supérieur à 10, le texte est mis en retrait de 10 espaces.
Si l'espace est une chaîne non vide (telle que " "), le texte de la valeur de retour est indenté à chaque niveau par les caractères de la chaîne.
Si l'espace est une chaîne de plus de 10 caractères, les 10 premiers caractères sont utilisés.
Si la valeur a une méthode toJSON, la fonction JSON.stringify utilisera la valeur de retour de cette méthode. Si la valeur de retour de la méthode toJSON n'est pas définie, le membre n'est pas converti. Cela permet à l'objet de déterminer sa propre représentation JSON.
Les valeurs qui n'ont pas de représentation JSON, comme undéfini, ne seront pas converties. Dans l'objet, ces valeurs sont ignorées. Dans le tableau, ces valeurs sont remplacées par null.
Ordonnance d'exécution
Pendant le processus de sérialisation, si le paramètre value correspond à la méthode toJSON, JSON.stringify appellera d'abord la méthode toJSON. Si la méthode n'existe pas, la valeur d'origine est utilisée. Ensuite, si le paramètre de remplacement est fourni, cette valeur (soit la valeur d'origine, soit la valeur de retour toJSON) est remplacée par la valeur de retour du paramètre de remplacement. Enfin, des espaces sont ajoutés à la valeur en fonction du paramètre space facultatif pour produire le texte JSON final.
Cet exemple utilise JSON.stringify pour convertir un objet contact en texte JSON. Définissez le tableau memberfilter pour convertir uniquement les membres nom de famille et téléphone. Omettez le prénom du membre.
var contact = nouvel Objet();
contact.prenom = "Jesper";
contact.nom = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
var memberfilter = new Array();
memberfilter[0] = "nom";
memberfilter[1] = "téléphone";
var jsonText = JSON.stringify(contact, memberfilter, "t");
document.write(jsonText);
// Sortie :
// { "nom": "Aaberg", "téléphone": [ "555-0100", "555-0120" ] >
Méthode toJSON (Date) (JavaScript)
Syntaxe : nom_objet.toJSON()
nom de l'objet
Obligatoire. Objet qui doit être sérialisé JSON.
La méthode toJSON est un membre intégré de l'objet JavaScript Date. Il renvoie une chaîne de date au format ISO dans le fuseau horaire UTC (représenté par le suffixe Z).
L'exemple suivant utilise la méthode toJSON pour sérialiser les valeurs des membres de chaîne en majuscules. La méthode toJSON est appelée lors de l'appel de JSON.stringify.
JavaScript
var contact = nouvel Objet();
contact.prenom = "Jesper";
contact.nom = "Aaberg";
contact.phone = ["555-0100", "555-0120"];
contact.toJSON = fonction(clé)
{
var remplacement = new Object();
pour (var val dans ceci)
{
Si (typeof (this[val]) === 'string')
remplacement[val] = this[val].toUpperCase();
autre
remplacement[val] = this[val]
>
Retourner le remplacement ;
};
var jsonText = JSON.stringify(contact);
/* La valeur de jsonText est :
'{"prénom":"JESPER","nom":AABERG","téléphone":["555-0100","555-0120"]}'
*/
Fonction JSON.parse (JavaScript)
Convertir la chaîne de notation d'objet JavaScript (JSON) en objet
Syntaxe : JSON.parse(text [, reviver])
texte
Requis. Une chaîne JSON valide.
raviveur
Facultatif. Une fonction qui convertit le résultat. Cette fonction sera appelée pour chaque membre de l'objet. Si un membre contient des objets imbriqués, les objets imbriqués sont convertis avant l'objet parent. Pour chaque membre, il se passe ce qui suit :
Si reviver renvoie une valeur valide, la valeur du membre est remplacée par la valeur convertie.
Si le reviver renvoie la même valeur qu'il a reçue, la valeur du membre n'est pas modifiée.
Si reviver renvoie null ou non défini, le membre est supprimé.
L'exemple suivant utilise JSON.parse pour convertir une chaîne JSON en objet.
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
document.write(contact.nom", " contact.prénom);
// Sortie : Aaberg, Jesper
L'exemple suivant montre comment utiliser JSON.stringify pour convertir un tableau en chaîne JSON, puis utiliser JSON.parse pour reconvertir la chaîne en tableau.
var arr = ["a", "b", "c"];
var str = JSON.stringify(arr);
document.write(str);
document.write ("
");
var newArr = JSON.parse(str);
while (newArr.length > 0) {
Document.write(newArr.pop() "
");
>
// Sortie :
// ["a","b","c"]
//c
//b
// un