Maison >interface Web >js tutoriel >Explication détaillée de la conversion entre les chaînes JSON et les objets_json
JSON (JavaScript Object Notation) est un sous-ensemble du langage de programmation JavaScript. JSON étant un sous-ensemble de JavaScript, il peut être clairement utilisé dans ce langage.
Fonction d'évaluation Convertir le texte JSON en objet
Afin de convertir du texte JSON en objet, vous pouvez utiliser la fonction eval. La fonction eval appelle l'éditeur JavaScript. Puisque JSON est un sous-ensemble de JavaScript, le compilateur analysera correctement le texte et produira des structures d'objet. Le texte doit être placé entre parenthèses pour éviter les ambiguïtés de syntaxe JavaScript.
var obj = eval('(' JSONTest ')'); La fonction eval est très rapide. Il peut compiler et exécuter n'importe quel programme JavaScript, créant ainsi des problèmes de sécurité. La fonction eval ne doit être utilisée que lors de l'utilisation d'un code source fiable et complet. Cela permet une analyse plus sûre du texte JSON. Pour les applications Web qui utilisent XmlHttp, la communication entre les pages autorise uniquement la même origine, elle peut donc être fiable. Mais ce n'est pas parfait. Si le serveur n'a pas de codage JSON strict ou n'a pas de validation d'entrée stricte, il peut transmettre du texte JSON non valide, y compris des scripts dangereux. La fonction eval exécutera le script malveillant.
Interpréteur JSON JSON.parse, JSON.stringify
L'utilisation d'un analyseur JSON peut prévenir les risques de sécurité comme la fonction eval qui convertit le texte JSON en objets. L'analyseur JSON ne peut reconnaître que le texte JSON et rejeter tous les scripts. Les navigateurs qui fournissent une prise en charge native de JSON auront leurs analyseurs JSON beaucoup plus rapides que la fonction eval.
Actuellement, Firefox, Opera et IE8 et versions ultérieures fournissent également un support JSON local. Parmi elles, les fonctions fournies par l'interpréteur JSON sont : JSON.parse, JSON.stringify.
Pour les navigateurs qui ne fournissent pas de support JSON natif, vous pouvez introduire le script json2.js pour implémenter la fonction de conversion JSON. Le script json2.js peut être téléchargé depuis la page https://github.com/douglascrockford/JSON-js/blob/master/json2.js.
Fonction JSON.parse
Convertissez le texte JSON en objet.
JSON.parse(texte[, reviver])
Paramètres
texte
Requis. Texte JSON à convertir en objet.
raviveur
Facultatif. Ce paramètre est une fonction de remplacement. Dans la transformation, pour chaque nœud traversé, cette fonction sera exécutée, et la valeur de retour de la fonction remplacera la valeur du nœud correspondant du résultat de la transformation.
Fonction JSON.stringify
Convertir l'objet en texte JSON.
JSON.stringify(value[, replacer[, space]])
Paramètres
texte
Requis. Objet à convertir en texte JSON.
raviveur
Facultatif. Ce paramètre est une fonction de remplacement. Dans la transformation, pour chaque nœud traversé, cette fonction sera exécutée, et la valeur de retour de la fonction remplacera la valeur du nœud correspondant du résultat de la transformation.
espace
Facultatif. Nombre d'espaces pour mettre en retrait le texte JSON de sortie formaté. Si ce paramètre n'est pas fourni, la sortie ne sera pas formatée.
Type de délégué de relanceur de paramètres
reviver(clé, valeur)
Ceci dans la fonction reviver est le nœud parent du nœud actuellement traversé. Lorsque le nœud racine est parcouru, le nœud parent est un objet Objet, le nœud racine est un attribut de l'objet et le nom de l'attribut est une chaîne vide.
Paramètres
clé
Lorsque le nœud parent est un objet tableau, la clé est l'index du tableau, sinon la clé est le nom de la propriété Objet.
valeur
valeur du nœud.
Remarque : JSON ne prend pas en charge les structures de données circulaires.
jQuery.parseJSON( jsonTex )
jQuery dispose également d'une méthode de conversion de chaînes au format JSON, jQuery.parseJSON(json), qui accepte une chaîne JSON au format standard et renvoie un objet JavaScript (JSON) analysé. Bien sûr, si vous êtes intéressé, vous pouvez encapsuler vous-même une extension jQuery. jQuery.stringifyJSON(obj) convertit JSON en chaîne.
Ce qui précède représente l’intégralité du contenu de cet article. J’espère que vous l’aimerez tous.