Maison >interface Web >js tutoriel >Que fait json.stringify() ?

Que fait json.stringify() ?

青灯夜游
青灯夜游original
2020-12-16 16:08:0517124parcourir

json.stringify() est utilisé pour convertir des objets ou des valeurs JavaScript en chaînes JSON Si une fonction de remplacement est spécifiée, la valeur peut être éventuellement remplacée, ou le remplaçant spécifié est un tableau, ce qui est facultatif. . Contient uniquement les attributs spécifiés par le tableau.

Que fait json.stringify() ?

Recommandations associées : "Tutoriel vidéo javascript"

JavaScript JSON.stringify()

La méthode JSON.stringify() est utilisée pour convertir les valeurs JavaScript en chaînes JSON.

Syntaxe

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

Description du paramètre :

valeur : obligatoire, la valeur JavaScript à convertir (généralement un objet ou un tableau).

remplacement : facultatif. La fonction ou le tableau utilisé pour convertir le résultat.

  • Si replacer 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.

espace : facultatif, le texte ajoute une indentation, des espaces et des nouvelles lignes. Si l'espace est un nombre, le texte de la valeur de retour est indenté du nombre d'espaces spécifié à chaque niveau. supérieur à 10, le texte est en retrait de 10 espaces. L'espace peut également utiliser des non-nombres, tels que : t.

Valeur de retour :

Renvoie une chaîne contenant du texte JSON.

Exemple de description

Remarque : les résultats de sortie suivants sont tous de type chaîne Afin de faciliter la lecture, des guillemets simples '. ' ne sont pas utilisés pour indiquer le type de chaîne

1. Un seul paramètre

Le paramètre est un objet :

var students = new Array();
students[0] = "pika";
students[1] = "hello";
students[2] = "hey";
var json = JSON.stringify(students);
alert(json);

Résultat de sortie :

["pika","hello","hey"]

Si JSON n'est pas utilisé, fonction .stringify(), alertez directement (étudiants), alors

résultat de sortie :

pika,hello,hey

D'ici à la comparaison, vous pouvez voir plus intuitivement le rôle de la fonction JSON.stringify()

Regardez d'autres exemples :

JSON.stringify({});                        // 输出结果:{}
JSON.stringify(true);                      // 输出结果:true
JSON.stringify("foo");                     // 输出结果:"foo"
JSON.stringify([1, "false", false]);       // 输出结果:[1,"false",false]
JSON.stringify({ x: 5 });                  // 输出结果:{"x":5}

JSON.stringify({x: 5, y: 6});              
//输出结果:{"x":5,"y":6}

JSON.stringify([new Number(1), new String("false"), new Boolean(false)]); 
//输出结果:[1,"false",false]

Comme le montrent ces exemples : les objets d'empaquetage booléens, numériques et de chaîne seront automatiquement convertis en les objets d'emballage correspondants. valeurs d'origine pendant le processus de sérialisation

Regardez d'autres exemples :

JSON.stringify({x: undefined, y: Object, z: Symbol("")}); 
// 输出结果:{}

JSON.stringify([undefined, Object, Symbol("")]);          
// 输出结果:[null,null,null]'

JSON.stringify({[Symbol("foo")]: "foo"});                 
// 输出结果:{}

JSON.stringify({[Symbol.for("foo")]: "foo"}, [Symbol.for("foo")]);
// 输出结果:{}

JSON.stringify(
    {[Symbol.for("foo")]: "foo"}, 
    function (k, v) {
        if (typeof k === "symbol"){
            return "a symbol";
        }
    }
);
//输出结果:undefined

Comme le montrent ces exemples : les fonctions et valeurs de symboles non définies et arbitraires seront ignorées pendant le processus de sérialisation (apparaissant dans les valeurs d'attribut​​des objets non-tableaux au milieu) ou converti en null (lorsqu'il apparaît dans un tableau)

Regardez le dernier exemple

JSON.stringify( 
    Object.create(
        null, 
        { 
            x: { value: 'x', enumerable: false }, 
            y: { value: 'y', enumerable: true } 
        }
    )
);

Comme cela peut être vu de l'exemple : les propriétés non énumérables seront ignorées

2. Il y a deux paramètres. Le deuxième paramètre est la fonction

Exemple de fonction :

 function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

Cela peut être. vu qu'il y a une valeur clé et une valeur valeur. Rappelez-vous ce que j'ai dit au début. Le deuxième paramètre est-il utilisé comme valeur clé ?

Exemple :

function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var jsonString = JSON.stringify(foo, replacer);
//输出结果:{"week":45,"month":7}

consiste à transmettre la première valeur à la fonction pour le traitement associé

2 Il y a deux paramètres, le deuxième paramètre est un tableau <.>

Le premier paramètre est un tableau

var students = new Array();
students[0] = "pika";
students[1] = "hello";
students[2] = "hey";
var stu= new Array();
stu[0] = "how";
stu[1] = "are";
stu[2] = "u";
var json = JSON.stringify(students,stu);
alert(json);
//输出结果:["pika","hello","hey"]

Le résultat est que seule la première valeur est sérialisée et la seconde est ignorée

Le premier paramètre est La valeur de l'objet

var students = new Object();
students.name = "pika";
students.age = 19;
students.qq = "12345678";
var stu= new Array();
stu[0] = "name";
stu[1] = "qq";
var json = JSON.stringify(students,stu);
alert(json);
//输出结果:{"name":"pika","qq":"12345678"}

représente le nom de l'attribut qui sera sérialisé dans une chaîne JSON

le tableau stu n'a pas "age", donc l'attribut "age" de l'objet étudiants n'est pas affiché

Il y a trois paramètres

Comme mentionné précédemment, le troisième paramètre est utilisé pour indenter ou ajouter directement une chaîne devant l'objet sérialisé, il suffit donc de regarder l'exemple. Notez qu'au plus Peut avoir 10 retraits ou caractères

JSON.stringify({ a: 2 }, null, " ");   
// 输出结果:{\n "a": 2\n}

JSON.stringify({ uno: 1, dos : 2 }, null, &#39;\t&#39;)
/* 输出结果:
{
    "uno": 1,
    "dos": 2
}
*/

var students = new Object();
students.name = "pika";
students.age = 19;
students.qq = "12345678";
var stu= new Array();
stu[0] = "name";
stu[1] = "qq";
var json = JSON.stringify(students,stu,"test")
alert(json);
/* 输出结果:
{
test"name": "pika",
test"qq": "12345678"
}
*/

Résumé

Enfin, pour résumer, le JSON.stringify() la fonction est utilisée pour sérialiser des objets Oui, peu importe ce qui est entré, la sortie est de type chaîne Vous pouvez personnaliser la façon de sérialiser et le format du résultat de sortie en fonction de vos propres besoins

Pour plus de programmation. -connaissances liées, veuillez visiter :

Programmation Apprendre  ! !

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!

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