Ce qui est considéré ici, c'est que le serveur renvoie une chaîne JSON. Pour les objets JSON encapsulés par des plug-ins tels que JSONObject, la même chose est vraie et ne sera pas expliquée ici.
Le jeu de chaînes JSON est d'abord donné ici. Le jeu de chaînes est le suivant :
var data=" { root: [ {name:'1',value:'0'}, {name:'6101',value:'西安市'}, {name:'6102',value:'铜川市'}, {name:'6103',value:'宝鸡市'}, {name:'6104',value:'咸阳市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'} ] }";
Sur la base des types de données obtenus de manière asynchrone par les objets et chaînes jquery - json, nous introduisons ici les méthodes de traitement des résultats obtenus des deux manières.
1. Pour la chaîne JSON renvoyée par le serveur, si la requête asynchrone jquery n'a pas de description de type ou est acceptée comme chaîne, alors elle doit être objectivée. mettre la chaîne dans eval() est exécuté une fois. Cette méthode convient également pour obtenir des objets json à l'aide d'un javascipt ordinaire. Voici un exemple :
.var dataObj=eval("("+data+")");//转换为json对象 alert(dataObj.root.length);//输出root的子对象数量 $.each(dataObj.root,fucntion(idx,item){ if(idx==0){ return true; } //输出每个root子对象的名称和值 alert("name:"+item.name+",value:"+item.value); })
Remarque : pour que les js généraux génèrent des objets json, il vous suffit de remplacer la méthode $.each() par une instruction for, et les autres restent inchangées.
2. Pour la chaîne JSON renvoyée par le serveur, si la requête asynchrone jquery définit le type (généralement cet attribut de configuration) sur "json", ou utilise la méthode $.getJSON() pour obtenir le retour du serveur, alors là Il n'est pas nécessaire d'utiliser la méthode eval(), car le résultat obtenu à ce moment est déjà un objet json, il vous suffit d'appeler directement l'objet. Ici, la méthode $.getJSON est utilisée comme exemple pour illustrer la méthode de traitement des données :
$.getJSON("http://gaoyusi.blog.163.com/",{param:"gaoyusi"},function(data){
//此处返回的data已经是json对象 //以下其他操作同第一种情况 $.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); });