Heim > Artikel > Web-Frontend > Beispiel für die JSON-Analysemethode von jquery: Einführung_jquery
Was hier berücksichtigt wird, ist, dass der Server einen JSON-String zurückgibt. Für JSON-Objekte, die durch Plug-Ins wie JSONObject gekapselt sind, gilt das Gleiche und wird hier nicht erklärt.
Der JSON-String-Satz wird hier zuerst angegeben. Der String-Satz lautet wie folgt:
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:'商洛市'} ] }";
Basierend auf den asynchron von jquery erhaltenen Datentypen – JSON-Objekten und -Strings – stellen wir hier die Verarbeitungsmethoden der auf zwei Arten erhaltenen Ergebnisse vor.
1. Wenn die vom Server zurückgegebene JSON-Zeichenfolge keine Typbeschreibung hat oder als Zeichenfolge akzeptiert wird, muss sie objektiviert werden. Das heißt, Put the string in eval() wird einmal ausgeführt. Diese Methode eignet sich auch zum Abrufen von JSON-Objekten mit gewöhnlichem Javascript. Das Folgende ist ein Beispiel:
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); })
Hinweis: Damit allgemeines js JSON-Objekte generieren kann, müssen Sie nur die Methode $.each() durch eine for-Anweisung ersetzen, die anderen bleiben unverändert.
2. Wenn die asynchrone JQuery-Anfrage für die vom Server zurückgegebene JSON-Zeichenfolge den Typ (normalerweise dieses Konfigurationsattribut) auf „json“ setzt oder die Methode $.getJSON() verwendet, um die Serverrückgabe zu erhalten, dann ist dies der Fall Die Methode eval () ist nicht erforderlich, da das zu diesem Zeitpunkt erhaltene Ergebnis bereits ein JSON-Objekt ist. Sie müssen das Objekt nur direkt aufrufen. Hier wird die Methode $.getJSON als Beispiel zur Veranschaulichung der Datenverarbeitungsmethode verwendet:
$.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); }); });