Maison > interface Web > js tutoriel > Explication détaillée des exemples de conversion entre objets JSON et chaînes

Explication détaillée des exemples de conversion entre objets JSON et chaînes

零下一度
Libérer: 2018-05-18 11:27:51
original
2051 Les gens l'ont consulté

Pendant le processus de développement, si vous souhaitez transférer un petit nombre de paramètres vers le front et le backend, vous pouvez utiliser directement la fonction data d'ajax, la transmettre au format json et utiliser la requête en arrière-plan. Cependant, parfois, vous devez transmettre plusieurs paramètres, donc l'arrière-plan

Il est difficile d'accepter plusieurs requêtes. À ce stade, elles doivent être transmises sous la forme d'une classe ou d'une collection.

Par exemple : le frontend transmet les objets JSON au format de classe :

var jsonUserInfo = "{\"TUserName\":\"" + userName + "\",\"TInterest\":\"" + interest + "\",\"TSex\":\"" + sex + "\",\"TCity\":\"" + city + "\",\"TDetail\":\"" + detail + "\"}";
Copier après la connexion

Si jsonUserInfo est épelé sans symboles d'échappement, vous avez besoin de var jsonArrayFinal = JSON.stringify(jsonArray); Transmettez-le à nouveau.

$.ajax(                    
{                        
type: "post",                        
url: "ReceiveHandler1.ashx",                        
data: { userInfo: jsonUserInfo, flag: "123456", key: "654321" },                        
dataType: "text",                        
success: function(data) {                            
$("#pShow").html(data);                       
 } });
Copier après la connexion

Si le front-end transmet plusieurs tableaux JSON au format de classe, c'est-à-dire des types de collection :

Par exemple :

[{"name":"a"},{"name","b"},{"name","c"}]
Copier après la connexion

, il ne peut pas être transmis, à ce stade, vous devez utiliser JSON.stringify pour convertir l'objet tableau en chaîne, puis le transmettre via AJAX.

Par exemple, j'ai deux variables. Je souhaite convertir a en chaîne et b en objet JSON :

var a={"name":"tom","sex":"男","age":"24"}; 
var b='{"name":"Mike","sex":"女","age":"29"}';
Copier après la connexion

Dans Firefox, Chrome, Opera, Safari, Les navigateurs avancés tels que ie9 et ie8 peuvent utiliser directement les méthodes stringify() et parse() de l'objet JSON.

JSON.stringify(obj) convertit JSON en chaîne. JSON.parse(string) convertit la chaîne au format JSON ;

La conversion ci-dessus peut être écrite comme suit :

var a={"name":"tom","sex":"男","age":"24"}; 
var b='{"name":"Mike","sex":"女","age":"29"}';
var aToStr=JSON.stringify(a); 
var bToObj=JSON.parse(b); 
alert(typeof(aToStr));  
//string alert(typeof(bToObj));
//object
JSON.stringify()
Copier après la connexion

ie8 (mode de compatibilité), ie7 et ie6 do pas d'objet JSON, mais www.json.org/js.html fournit un json.js afin que ie8 (mode de compatibilité), ie7 et ie6 puissent prendre en charge les objets JSON et leurs méthodes stringify() et parse(), vous pouvez le télécharger ; sur github. Ce js est obtenu à partir de com/douglascrockford/JSON-js. Généralement, json2.js est utilisé maintenant.

ie8 (mode de compatibilité), ie7 et ie6 peuvent utiliser eval() pour convertir une chaîne en objet JSON

var c='{"name":"Mike","sex":"女","age":"29"}'; 
var cToObj=eval("("+c+")"); 
alert(typeof(cToObj));
Copier après la connexion

jQuery dispose également d'une méthode pour convertir une chaîne au format JSON. jQuery .parseJSON( json ), 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 est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal