Maison  >  Article  >  interface Web  >  Une brève discussion sur la fonction stringify, la fonction toJosn et la fonction parse dans JSON_json

Une brève discussion sur la fonction stringify, la fonction toJosn et la fonction parse dans JSON_json

WBOY
WBOYoriginal
2016-05-16 16:18:071443parcourir

Fonction JSON.stringify (JavaScript)

Syntaxe : JSON.stringify(value [, replacer] [, space])

Convertissez une valeur JavaScript en chaîne de notation d'objet JavaScript (Json).

Copier le code Le code est le suivant :

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.

Copier le code Le code est le suivant :

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.

Copier le code Le code est le suivant :

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])

Copier le code Le code est le suivant :

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.

Copier le code Le code est le suivant :

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.

Copier le code Le code est le suivant :

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
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn