L'exemple de cet article décrit la fonction de jQuery utilisant la méthode ajax pour analyser les données json renvoyées. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Récemment, j'ai trouvé un problème lors de l'utilisation de la méthode ajax de jQuery pour transmettre et recevoir des données json, c'est-à-dire que les données renvoyées peuvent parfois être utilisées directement comme données JSON. Y en a-t-il? Ce n'est pas le bon moment. Après avoir vérifié quelques informations, l'explication est la suivante :
$.ajax({ url: ajaxurl, type: "POST", success: function(data){ //假设返回的json数据里有status及info2个属性 //有时候可以直接ajaxobj.status或者ajaxobj["status"]去访问 //但有时候,却要通过eval()或者 $.parsejson();才可以通过ajaxobj.status访问,而且这种情况下,需要是complete而不是success ajaxobj=eval("("+data+")"); //或者$.parsejson() //var ajaxobj = $.parsejson(data); if(ajaxobj.status=="0") { alert("请登陆."); } else if(ajaxobj.status=="1")//未绑定微博 { alert(ajaxobj.info); } return true; }, error:function(ajaxobj) { if(ajaxobj.responseText!='') alert(ajaxobj.responseText); } });
Laissez-moi d'abord vous expliquer la première situation :
peut accéder directement au nom de l'attribut des données, le code côté serveur doit être. une constante qui est directement renvoyée String.
Qu'est-ce qu'une chaîne constante ? Une chaîne constante fait référence à une chaîne composée directement de "". Si une variable String n'est pas définie et qu'une chaîne de "" est directement imprimée à la réception, l'attribut data. Le nom peut être utilisé directement Access, et vous pouvez l'obtenir en écrivant success du côté jquery.
Voici la raison pour laquelle eval est requis et le succès ne peut pas être saisi :
Cette situation est due au fait que lorsque le serveur imprime, il s'agit d'un objet String. Généralement, de tels problèmes sont dans mon code. C'est parce que le json d'arrière-plan est plus compliqué. J'ai utilisé StringBuffer pour l'organiser, puis quand j'ai imprimé à la fin, j'ai imprimé le toString de l'objet StringBuffer, donc c'était équivalent à imprimer un objet String
dans dans ce cas jquery La méthode ajax n'entrera pas dans la méthode success et ne peut être reçue qu'avec complete. Si vous souhaitez analyser les données json dans data, vous devez eval () ou $.parsejson() sur data.responseText; >
En plus de cela Deux points. Il convient de noter que si vous utilisez jq1.4, il a des exigences plus strictes pour le format json. Toutes les clés et attributs doivent être marqués par des guillemets doubles, bien que ce ne soit pas le cas de la clé. utiliser des guillemets doubles de manière native js est autorisé, mais jq1.4 semble avoir cette exigence. Ce qui précède sont mes pensées et mes compréhensions personnelles. Si vous avez des opinions différentes, donnez-moi des conseils.J'espère que cet article sera utile à tout le monde dans la programmation jQuery. Pour plus d'exemples fonctionnels jQuery d'utilisation de la méthode ajax pour analyser les données json renvoyées, veuillez faire attention au site Web PHP chinois !