Maison >interface Web >js tutoriel >Explication détaillée des exemples de conversion entre objets JSON et chaînes
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 + "\"}";
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); } });
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"}]
, 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"}';
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()
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));
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!