Dieses Mal zeige ich Ihnen, wie Sie mit Ajax undefinierte JSON-Daten abrufen. Was sind die Vorsichtsmaßnahmen, wenn Sie mit Ajax undefinierte JSON-Daten abrufen? sehen.
Asynchrones JavaScript und XML (Ajax) sind Schlüsseltechnologien für eine neue Generation von Websites (im Volksmund als Web 2.0-Sites bekannt). Ajax ermöglicht den Datenabruf im Hintergrund, ohne die Anzeige und das Verhalten einer Webanwendung zu beeinträchtigen. Rufen Sie Daten mithilfe der XMLHttpRequest-Funktion ab, einer API, die es clientseitigem JavaScript ermöglicht, über HTTP eine Verbindung zu einem Remote-Server herzustellen. Ajax ist auch die treibende Kraft hinter vielen Mashups, die Inhalte von mehreren Orten in einer einzigen Webanwendung integrieren.
Im Allgemeinen verarbeiten wir den vom Server gesendeten JSON-Wert auf zwei Arten:
1. Eine besteht darin, die Funktion eval() zu verwenden. var dataObj=eval("("+data+")");
//In JSON-Objekt konvertieren (Hinweis: Daten sind JSON-Daten);
2. Verwenden Sie das Funktionsobjekt für die Rückgabeanalyse. var json =(new Function("","return "+data))();
Aber als ich heute an einem Projekt arbeitete (das Projekt verwendete Struts2), habe ich diese beiden Methoden zum Lesen von JSON verwendet und die Ausgabe war immer undefiniert. Ich habe viele Informationen im Internet überprüft, aber die meisten davon konnten nicht erklärt werden. Später fand ich einen Artikel, in dem der Autor ebenfalls auf diese Situation gestoßen ist. Seine Lösung bestand darin, den Rückgabewert in der Aktion als JSON zu deklarieren > Attribut und in seinem eigenen Nachdem das Projekt den Test nicht bestanden hatte, bestand die Lösung darin, es erneut zu übertragen. Das Folgende ist meine eigene Meinung: Obwohl die aus dem Hintergrund übertragenen Daten als JSON-Attribut deklariert werden, handelt es sich bei der Weitergabe an die Rezeption tatsächlich um einen String und nicht um ein JSON-Objekt Wir müssen die Daten im Hintergrund verarbeiten, in ein JSON-Objekt konvertieren und dann den Wert in JSON abrufen. Aber manchmal ist der vom Hintergrund übertragene Wert nicht unbedingt eine Standard-JSON-Formatzeichenfolge. Obwohl wir das vom Hintergrund übertragene Objekt mit einer der beiden vorherigen Methoden konvertieren, ist das konvertierte JSON-Objekt zu diesem Zeitpunkt tatsächlich immer noch eine Zeichenfolge Standard-JSON-String, und nachdem wir ihn erneut konvertiert haben, wird er zu einem JSON-Objekt.
Das Folgende ist Teil des Codes:result = JSONObject.fromObject(map).toString();//后台代码,将map转成json对象 success : function(result) {//前台返回值代码 var obj = eval("("+result+")"); //var data1 =(new Function("","return "+obj))(); var data1=eval("("+obj+")"); alert(data1.name); }
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Dinge finden Sie unter php Chinesisch Andere verwandte Artikel online! Empfohlene Lektüre:
Detaillierte Erläuterung der Schritte zum Empfangen von JOSN-Daten mit JOSNP in Ajax
Was ist ein eleganter Lösung für Front-End-Ajax-Anfrage Realize
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Ajax, um JSON-Daten als undefiniert abzurufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!