Heim > Web-Frontend > js-Tutorial > Ausführliche Erläuterung der JavaScript-Konvertierung und des Parsens der JSON-Methode. Beispiele_Javascript-Kenntnisse

Ausführliche Erläuterung der JavaScript-Konvertierung und des Parsens der JSON-Methode. Beispiele_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 15:30:10
Original
1404 Leute haben es durchsucht

Die Beispiele in diesem Artikel beschreiben die JavaScript-Konvertierung und das Parsen von JSON-Methoden. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die JSON-Formatdaten lauten wie folgt:

var json = { 'jquery': [{ "id": "1", "type": "ASP.NET", "title": "JSON全解析"}] }
    alert(json.jquery[0].id);
    alert(json.jquery[0].type);
    alert(json.jquery[0].title);

Nach dem Login kopieren

Javascript analysiert JSON-Daten:

window.onload = function() {
 var json = { "China": "[{'City':'上海','value':'1'},{'City':'南京','value':'2'},{'City':'杭州','value':'3'},{'City':'武汉','value':'4'}]" }
 var datas = eval(json.China);
 for (var i = 0; i < datas.length; i++) 
 {
  alert(datas[i].City);
  alert(datas[i].value);
 }
}

Nach dem Login kopieren

Ergänzung: jQuery-Parsing-JSON-Methode:

Verwenden Sie die eval-Funktion zum Parsen und jquerys jede Methode zum Durchlaufen

Verwenden Sie JQuery zum Parsen von JSON-Daten. Das nach der JQuery-Anfrage zurückgegebene Ergebnis ist die Form der vom Server zurückgegebenen Zeichenfolge Plug-Ins wie JSONObject Das JSON-Objekt ähnelt diesem und wird hier nicht erläutert.

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:'重庆市'}, 
]
}"; 

Nach dem Login kopieren

Basierend auf den von JQuery asynchron erhaltenen Datentypen – JSON-Objekte und -Strings – stellen wir hier die von den beiden Methoden erhaltenen Ergebnisverarbeitungsmethoden vor.

eval()

Wenn die vom Server zurückgegebene JSON-Zeichenfolge den Typ nicht angibt oder ihn im Zeichenfolgenmodus akzeptiert, muss sie objektiviert werden. Andernfalls ist es nicht schwierig, die Zeichenfolge einzufügen in eval() Einmal ausgeführt. Diese Methode eignet sich auch zum Abrufen von JSON-Objekten mit gewöhnlichem Javascript. Das Folgende ist ein Beispiel:

// 转换为json对象
var dataObj=eval("("+data+")");

Nach dem Login kopieren

Warum müssen wir hier ("(" data ")"); hinzufügen?

Der Grund ist: das Problem der Bewertung selbst. Da JSON mit „{}“ beginnt und endet, wird es in JS als Anweisungsblock verarbeitet, sodass die Konvertierung in einen Ausdruck erzwungen werden muss.

Der Zweck des Hinzufügens von Klammern besteht darin, die Auswertungsfunktion zu zwingen, den Ausdruck in den Klammern in ein Objekt umzuwandeln, anstatt ihn bei der Verarbeitung von JavaScript-Code als Anweisung auszuführen. Nehmen Sie zum Beispiel das Objektliteral {}. Wenn keine äußeren Klammern hinzugefügt werden, erkennt eval die Klammern als Anfangs- und Endmarkierungen des JavaScript-Codeblocks und {} wird als eine leere Anweisung betrachtet. Daher sind die folgenden beiden Ausführungsergebnisse unterschiedlich:

// return undefined
alert(eval("{}"); 
// return object[Object]
alert(eval("({})");

Nach dem Login kopieren

Diese Art des Schreibens ist überall in JS zu sehen. Zum Beispiel: (function()) {}(); Bei Abschlussoperationen usw.

//输出root的子对象数量 
alert(dataObj.root.length);
$.each(dataObj.root,fucntion(idx,item){ 
  if(idx==0){ 
    return true; 
  } 
  //输出每个root子对象的名称和值 
  alert("name:"+item.name+",value:"+item.value); 
}) 

Nach dem Login kopieren

Damit allgemeines js JSON-Objekte generieren kann, müssen Sie nur die Methode $.each() durch eine for-Anweisung ersetzen, die anderen bleiben unverändert.

Vom Server zurückgegebene JSON-Zeichenfolge

Für die vom Server zurückgegebene JSON-Zeichenfolge: Wenn die asynchrone JQuery-Anfrage den Typ (normalerweise dieses Konfigurationsattribut) auf „json“ setzt oder die Methode $.getJSON() verwendet, um die Serverrückgabe zu erhalten, dann wird eval( )-Methode ist nicht erforderlich Da das zu diesem Zeitpunkt erhaltene Ergebnis bereits ein JSON-Objekt ist, müssen Sie das Objekt nur direkt aufrufen. Hier wird die Methode $.getJSON als Beispiel zur Veranschaulichung der Datenverarbeitungsmethode verwendet:

$.getJSON("http://www.xxxx.com/",{param:"gaoyusi"},function(data){ 
  //此处返回的data已经是json对象 
  //以下其他操作同第一种情况 
  $.each(data.root,function(idx,item){ 
    if(idx==0){ 
      //同countinue,返回false同break 
      return true;
    } 
    alert("name:"+item.name+",value:"+item.value); 
  }); 
}); 

Nach dem Login kopieren

Was hier besondere Aufmerksamkeit erfordert, ist, dass die eval()-Methode in Methode 1 die Zeichenfolge (möglicherweise ein js-Skript) dynamisch ausführt, was leicht zu Systemsicherheitsproblemen führen kann. Daher können Sie einige Client-Skriptbibliotheken von Drittanbietern verwenden, die eval() umgehen. Beispielsweise stellt JSON in JavaScript eine Skriptbibliothek von nicht mehr als 3 KB bereit.

Die zweite Methode zum Parsen ist die Verwendung von Funktionsobjekten. Ihre typische Anwendung ist das Parsen zurückgegebener Daten, z. B. Erfolg unter der AJAX-Methode in JQuery.

var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();

Nach dem Login kopieren

Die Daten sind zu diesem Zeitpunkt ein JSON-Objekt, das analysiert wird.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit der JavaScript-Programmierung befassen.

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage