Heim Web-Frontend js-Tutorial Analyse der Vorsichtsmaßnahmen für die Verwendung von eval zum Parsen von JSON in JS_javascript-Kenntnissen

Analyse der Vorsichtsmaßnahmen für die Verwendung von eval zum Parsen von JSON in JS_javascript-Kenntnissen

May 16, 2016 pm 03:32 PM
eval js json 注意事项 解析

In diesem Artikel werden die Vorsichtsmaßnahmen für die Verwendung von eval zum Parsen von JSON in JS ausführlich analysiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Es gibt im Allgemeinen zwei Möglichkeiten, JSON-Strings in JS in das JSON-Datenformat zu analysieren:

1. Eine besteht darin, die Funktion eval() zu verwenden.

2. Verwenden Sie das Funktionsobjekt, um eine Rückgabeanalyse durchzuführen.

Verwenden Sie die eval-Funktion zum Parsen und verwenden Sie die every-Methode von jquery zum Durchlaufen von

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 zur Kapselung mit 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:

Der Code 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:'商洛市'}
]
}";

Nach dem Login kopieren

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对象
Red rose为什么要 eval这里要添加 “("("+data+")");//”呢?

Nach dem Login kopieren

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. Wenn beispielsweise das Objektliteral {} nicht mit äußeren Klammern hinzugefügt wird, erkennt eval die Klammern als Start- und Endmarkierungen des JavaScript-Codeblocks und {} wird als eine leere Anweisung ausgeführt. Daher sind die folgenden beiden Ausführungsergebnisse unterschiedlich:

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

Nach dem Login kopieren

Diese Art des Schreibens ist überall in JS zu sehen.

Zum Beispiel: (function()) {}(); Bei Abschlussoperationen usw.

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

Nach dem Login kopieren

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://www.phpzixue.cn/",{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); 
}); 
});

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 Parsing-Methode 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.

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

Wuthering WavesEinführung in Dinge, die während des Tests beachtet werden müssen Wuthering WavesEinführung in Dinge, die während des Tests beachtet werden müssen Mar 13, 2024 pm 08:13 PM

Bitte vermeiden Sie während des Mingchao-Tests Systemaktualisierungen, Werksresets und den Austausch von Teilen, um zu verhindern, dass Informationsverluste zu abnormalen Spielanmeldungen führen. Besondere Erinnerung: Während des Testzeitraums gibt es keinen Einspruchskanal. Gehen Sie daher bitte mit Vorsicht vor. Einführung in die Vorsichtsmaßnahmen während des Mingchao-Tests: Aktualisieren Sie das System nicht, stellen Sie die Werkseinstellungen nicht wieder her, ersetzen Sie keine Gerätekomponenten usw. Hinweise: 1. Bitte aktualisieren Sie das System während des Testzeitraums sorgfältig, um Informationsverluste zu vermeiden. 2. Wenn das System aktualisiert wird, kann es dazu kommen, dass die Anmeldung beim Spiel nicht möglich ist. 3. Zu diesem Zeitpunkt ist der Einspruchskanal noch nicht geöffnet. Den Spielern wird empfohlen, nach eigenem Ermessen zu entscheiden, ob sie ein Upgrade durchführen möchten. 4. Gleichzeitig kann ein Spielkonto nur mit einem Android-Gerät und einem PC verwendet werden. 5. Es wird empfohlen, zu warten, bis der Test abgeschlossen ist, bevor Sie das Mobiltelefonsystem aktualisieren, die Werkseinstellungen wiederherstellen oder das Gerät austauschen.

Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON Tipps zur Leistungsoptimierung für die Konvertierung von PHP-Arrays in JSON May 04, 2024 pm 06:15 PM

Zu den Leistungsoptimierungsmethoden für die Konvertierung von PHP-Arrays in JSON gehören: Verwendung von JSON-Erweiterungen und der Funktion json_encode(); Verwendung von Puffern zur Verbesserung der Leistung der Schleifencodierung; JSON-Codierungsbibliothek.

Wie starte ich zum ersten Mal eine Live-Übertragung auf Douyin? Was ist bei der ersten Live-Übertragung zu beachten? Wie starte ich zum ersten Mal eine Live-Übertragung auf Douyin? Was ist bei der ersten Live-Übertragung zu beachten? Mar 22, 2024 pm 04:10 PM

Mit dem Aufkommen von Kurzvideoplattformen ist Douyin zu einem festen Bestandteil des täglichen Lebens vieler Menschen geworden. Live-Übertragungen auf Douyin und die Interaktion mit Fans sind die Träume vieler Nutzer. Wie startet man also zum ersten Mal eine Live-Übertragung auf Douyin? 1. Wie starte ich zum ersten Mal eine Live-Übertragung auf Douyin? 1. Vorbereitung Um die Live-Übertragung zu starten, müssen Sie zunächst sicherstellen, dass Ihr Douyin-Konto die Authentifizierung mit echtem Namen abgeschlossen hat. Das Tutorial zur Echtnamen-Authentifizierung finden Sie unter „Ich“ -> „Einstellungen“ -> „Konto und Sicherheit“ in der Douyin-APP. Nach Abschluss der Authentifizierung mit echtem Namen können Sie die Live-Übertragungsbedingungen erfüllen und mit der Live-Übertragung auf der Douyin-Plattform beginnen. 2. Beantragen Sie eine Live-Übertragungserlaubnis. Nachdem Sie die Bedingungen für die Live-Übertragung erfüllt haben, müssen Sie eine Live-Übertragungserlaubnis beantragen. Öffnen Sie die Douyin-App und klicken Sie auf „Ich“ -> „Creator Center“ -> „Direkt“.

Analyse der Bedeutung und Verwendung von Midpoint in PHP Analyse der Bedeutung und Verwendung von Midpoint in PHP Mar 27, 2024 pm 08:57 PM

[Analyse der Bedeutung und Verwendung von Mittelpunkt in PHP] In PHP ist Mittelpunkt (.) ein häufig verwendeter Operator, der zum Verbinden zweier Zeichenfolgen oder Eigenschaften oder Methoden von Objekten verwendet wird. In diesem Artikel befassen wir uns eingehend mit der Bedeutung und Verwendung von Mittelpunkten in PHP und veranschaulichen sie anhand konkreter Codebeispiele. 1. String-Mittelpunkt-Operator verbinden Die häufigste Verwendung in PHP ist das Verbinden zweier Strings. Indem Sie . zwischen zwei Saiten platzieren, können Sie diese zu einer neuen Saite zusammenfügen. $string1=&qu

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? May 06, 2024 pm 10:09 PM

Anmerkungen in der Jackson-Bibliothek steuern die JSON-Serialisierung und -Deserialisierung: Serialisierung: @JsonIgnore: Ignorieren Sie die Eigenschaft @JsonProperty: Geben Sie den Namen an @JsonGetter: Verwenden Sie die get-Methode @JsonSetter: Verwenden Sie die set-Methode Deserialisierung: @JsonIgnoreProperties: Ignorieren Sie die Eigenschaft @ JsonProperty: Geben Sie den Namen @JsonCreator an: Verwenden Sie den Konstruktor @JsonDeserialize: Benutzerdefinierte Logik

Die Beziehung zwischen js und vue Die Beziehung zwischen js und vue Mar 11, 2024 pm 05:21 PM

Die Beziehung zwischen js und vue: 1. JS als Eckpfeiler der Webentwicklung; 2. Der Aufstieg von Vue.js als Front-End-Framework; 3. Die komplementäre Beziehung zwischen JS und Vue; Vue.

Analyse der neuen Funktionen von Win11: So überspringen Sie die Anmeldung bei einem Microsoft-Konto Analyse der neuen Funktionen von Win11: So überspringen Sie die Anmeldung bei einem Microsoft-Konto Mar 27, 2024 pm 05:24 PM

Analyse der neuen Funktionen von Win11: So überspringen Sie die Anmeldung bei einem Microsoft-Konto. Mit der Veröffentlichung von Windows 11 haben viele Benutzer festgestellt, dass es mehr Komfort und neue Funktionen bietet. Einige Benutzer möchten jedoch möglicherweise nicht, dass ihr System an ein Microsoft-Konto gebunden ist, und möchten diesen Schritt überspringen. In diesem Artikel werden einige Methoden vorgestellt, mit denen Benutzer die Anmeldung bei einem Microsoft-Konto in Windows 11 überspringen können, um ein privateres und autonomeres Erlebnis zu erreichen. Lassen Sie uns zunächst verstehen, warum einige Benutzer zögern, sich bei ihrem Microsoft-Konto anzumelden. Einerseits befürchten einige Benutzer, dass sie

See all articles