Heim > Web-Frontend > js-Tutorial > JavaScript durchläuft den Json-String und der Browser gibt inkonsistente Ergebnisse aus

JavaScript durchläuft den Json-String und der Browser gibt inkonsistente Ergebnisse aus

高洛峰
Freigeben: 2016-12-07 17:19:50
Original
1196 Leute haben es durchsucht

Bevor ich den Haupttext vorstelle, möchte ich Ihnen erklären, was JSON ist.

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das wir JavaScript Object Notation nennen. Einer der Vorteile der Verwendung von JSON für die Datenübertragung besteht darin, dass es sich bei JSON eigentlich um JavaScript handelt. Es handelt sich um ein Textformat, das auf der Teilmenge der JavaScript-Objektliteralsyntax von ECMAScript Version 3 basiert. Das bedeutet, dass Sie mit „responseText“ JSON-Daten vom Server abrufen und dann die eval()-Methode von JavaScript verwenden können, um die JSON-Zeichenfolge in ein JavaScript-Objekt zu konvertieren. Anschließend können Sie die Daten mithilfe von zusätzlichem JavaScript problemlos aus dem Objekt extrahieren, ohne sie zu verarbeiten .DOM.

Bei der Arbeit an Projekten verwenden wir häufig JavaScript JSON.

Lassen Sie uns zunächst darüber sprechen, was der JSON-String von Javascript ist. Der JSON-String ist ein Objekt von Javascript und verfügt über Objekte, die Schlüsseln und Werten entsprechen.

Das allgemeine Format ist:

a = {
a1 : 1,
a2 : 'abc',
a3 : 'abc',
a4 : [1,2,3],
a5 : function(){console.log(12)}
};
Nach dem Login kopieren

Die Art und Weise, wie wir diesen JSON lesen, besteht darin, ihn durch eine for-in-Schleife zu durchlaufen >

Der Vorteil der Verwendung von JSON-Strings besteht darin, dass Sie die Daten in der Datenbank sofort lesen und im JSON-Format speichern und dann die darin enthaltenen Attribute über Javascript lesen können. Dies kann die Anzahl der Anfragen an den Server erheblich reduzieren Erhöhen Sie die Anzahl der Anfragen an den Server. Die Ladeeffizienz der Startseite.

Beim Durchlaufen von JSON werden wir auf viele Probleme stoßen. Das Problem, auf das ich heute gestoßen bin, ist, dass Mainstream-Browser beim Durchlaufen unseren Anweisungen nicht folgen Ausgabe-JSON wird sequentiell ausgegeben, jedoch in der Reihenfolge der Zahlen von klein nach groß. Aber Browser unter IE8 geben die Ausgabe in der von uns ausgegebenen Reihenfolge aus.

Zum Beispiel:

a = {
'1' : 1,
'5' : function(){console.log(12)},
'2' : 'abc',
'4' : [1,2,3],
'3' : {'5' : 'abc', '6' : 'bcd'},
};
Nach dem Login kopieren

By for in loop

for(var i in a){
console.log(a[i]);
}
Nach dem Login kopieren

Chrome-, Firefox- und andere Browserausgabe: 1, abc, Object { 5="abc", 6="bcd"}, [1, 2, 3], function();

ie8 Und die folgenden Browser: 1, function(), abc, [1, 2, 3], Object { 5="abc", 6="bcd"}

Es gibt zwei Möglichkeiten, dieses Problem zu lösen Problem:

Das erste besteht darin, den numerischen Schlüsselwert in eine Zeichenfolge mit Buchstaben oder Unterstrichen zu ändern.

Das zweite besteht darin, die Kompatibilität von IE zu lösen, indem zuerst JSON durchlaufen und dann der Schlüsselwert konvertiert wird Speichern Sie es in einem Array und durchlaufen Sie dann das Array, um die Daten in JSON abzurufen.

Spezifischer Code:

var arr = [],sortNumber = function (a,b){
return a - b;
};
for(var i in a){
arr[arr.length] = a[i];
arr.sort(sortNumber);
for(var x = 0; x < arr.length; x++) {
console.log(a[arr[x]]);
}
Nach dem Login kopieren

Der Nachteil ist, dass dies nicht der Fall ist Das von uns ausgegebene JSON-Format löst nur das Problem der Browserkompatibilität.


Verwandte Etiketten:
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