„JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat. Es basiert auf einer Teilmenge von ECMAScript. Da es ein sprachunabhängiges Textformat verwendet, verwendet es auch ähnliche Gewohnheiten wie die C-Sprachfamilie und verfügt über diese Eigenschaften machen JSON zu einer idealen Datenaustauschsprache, die für Menschen leicht zu lesen und zu schreiben ist und auch für Maschinen leicht zu analysieren und zu generieren ist (wird im Allgemeinen zur Verbesserung der Netzwerkübertragungsraten verwendet).
Heute möchte ich kurz über die Funktionen JSON.parse() und JSON.stringify() in jquery sprechen. Ich werde übrigens auch die Funktion eval() in nativem JS erwähnen
(1) JSON.parse-Funktion
Funktion: Konvertieren Sie die JavaScript Object Notation (JSON)-Zeichenfolge in ein Objekt. Syntax: JSON.parse(text [, reviver])
Parameter:
Text Erforderlich. Eine gültige JSON-Zeichenfolge.
Rückgabewert: ein Objekt oder Array
var json = '{"name":"GDT","age":,"University":"GDUT"}'; var info = JSON.parse(json); //解析为JSON对象 document.write(info.name + ' is a student of ' + info.University + ' and he is ' + info.age + " years old."); /info为Object对象
(2) JSON.stringify()-Funktion
Funktion: Konvertieren Sie den JavaScript-Wert in die JavaScript Object Notation (JSON)-ZeichenfolgeSyntax: JSON.stringify( value [, replacementer] [, space])
Parameter:
Wert Erforderlich, normalerweise der JavaScript-Wert, der konvertiert werden muss (normalerweise ein Objekt oder Array)
Beispiel:
var info = {name:"GDT",age:,University:"GDUT"}; var json = JSON.stringify(info); //转换为JSON字符串 document.write(json); //output为{"name":"GDT","age":23,"University":"GDUT"}
(3) eval()-Funktion
Funktion: Die Funktion eval() kann einen String berechnen und den darin enthaltenen JavaScript-Code ausführen.Syntax: eval(string)
Parameter:
string Erforderlich, die auszuwertende Zeichenfolge, die den auszuwertenden JavaScript-Ausdruck oder die auszuführende Anweisung enthält.
Beispiel:
eval("x=;y=;document.write(x*y)"); //output为 document.write(eval("+")); //output为 var x=; document.write(eval(x+)); //output为
// JSON.parse() var json = '{"name":"GDT","age":,"University":"GDUT"}'; var info = JSON.parse(json); //解析为JSON对象 document.write(info); //output为[object Object] //eval() var json = '{"name":"GDT","age":,"University":"GDUT"}'; var info = eval('(' + json + ')'); //解析为JSON对象 document.write(info); //output为[object Object]
Grund: Dies liegt am Problem der Auswertung selbst. Da JSON in JS mit „{}“ beginnt und endet, wird es als Anweisungsblock verarbeitet und muss daher in einen Ausdruck umgewandelt werden .
Lösung: Der Zweck des Hinzufügens von Klammern besteht darin, die Auswertungsfunktion zu zwingen, den Ausdruck in den Klammern bei der Verarbeitung von JavaScript-Code in ein Objekt umzuwandeln, anstatt ihn 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 ausgeführt. Bitte sehen Sie sich den Unterschied in den folgenden Beispielen an
alert(eval("{}")); // return undefined alert(eval('('+'{}'+')')); // return object[Object]
var str = '{"a":"b"}'; document.write(eval("("+str+")")); //正常解析为对象 var str = '{"a": (function(){alert("I can do something bad!");})()}'; eval('('+str+')'); //可以用来执行木马脚本
Es ist Zeit für eine persönliche Zusammenfassung. Er wurde am 1. April geboren. Ich hoffe wirklich, dass die aktuelle Technologie sehr schlecht ist dass ich es jetzt schaffen kann, Stück für Stück Wissen anzusammeln und eine gute Grundlage für den zukünftigen Erfolg zu legen, zu kämpfen~