🔫 JSON : Die fettfreie Alternative zu XML
JSON wurde von Menschen, die festgestellt haben, dass es die Erstellung verteilter Anwendungen und Dienste erheblich vereinfacht, weitgehend übernommen. Der offizielle Internet-Medientyp für JSON ist application/json
RFC 4627
. JSON-Dateinamen verwenden die Erweiterung .json
.
► JavaScript Object Notation ( JSON
) ist ein leichtes, textbasiertes, sprachunabhängiges Datenaustauschformat. JSON wurde verwendet, um Daten zwischen Anwendungen auszutauschen, die in einer beliebigen Programmiersprache geschrieben sind.
Das JSON-Objekt ist ein einzelnes Objekt, das zwei Funktionen enthält, parse und stringify, die zum Parsen und Erstellen von JSON-Texten verwendet werden.
- JSON.stringify erzeugt einen String, der der folgenden JSON-Grammatik entspricht.
- JSON.parse akzeptiert einen String, der der JSON-Grammatik entspricht.
Die parseJSON-Methode wird in die Fourth Edition of ECMAScript
. In der Zwischenzeit ist eine JavaScript-Implementierung auf json.org verfügbar.
var objLiteral = {foo: 42}; // JavaScript Object
console.log('Object Literal : ', objLiteral ); // Object {foo: 42}foo: 42__proto__: Object
// This is a JSON String, like what you'd get back from an AJAX request.
var jsonString = '{"foo": 452}';
console.log('JOSN String : ', jsonString ); // {"foo": 452}
// This is how you deserialize that JSON String into an Object.
var serverResposnceObject = JSON.parse( jsonString );
console.log('Converting Ajax response to JavaScript Object : ', serverResposnceObject); // Object {foo: 42}foo: 42 __proto__: Object
// And this is how you serialize an Object into a JSON String.
var serverRequestJSON = JSON.stringify( objLiteral );
console.log('Reqesting server with JSON Data : ', serverRequestJSON); // '{"foo": 452}'
JSON ist eine Teilmenge von JavaScript. Javascript wurde vom ECMAScript Programming Language Standard abgeleitet.
► ECMAScript
ECMAScript hat sich zu einer der weltweit am häufigsten verwendeten Allzweck-Programmiersprachen entwickelt. Es ist am besten als die in Webbrowsern eingebettete Sprache bekannt, wurde aber auch für Server- und eingebettete Anwendungen weit verbreitet. ECMAScript basiert auf mehreren Ursprungs-Technologien, von denen die bekannteste JavaScript
(Netscape Communications) undJScript
(Microsoft Corporation) sind . Obwohl ECMA vor 1994 als "European Computer Manufacturers Association" bekannt war, wurde nach 1994, als die Organisation global wurde, die "Marke" "Ecma" aus historischen Gründen beibehalten.
ECMAScript ist die Sprache, während JavaScript, JScript und sogar ActionScript aufgerufen werden "Dialects"
.
Dialekte wurden aus derselben Sprache abgeleitet. Sie sind einander ziemlich ähnlich, da sie aus derselben Sprache stammen, aber einige Änderungen erfahren haben. Ein Dialekt ist eine Variation in der Sprache selbst. Es ist aus einer einzigen Sprache abgeleitet.
- SQL-Sprache - MySQL-Dialekt im Ruhezustand, Oracle-Dialekt usw., die einige Änderungen oder zusätzliche Funktionen aufweisen.
Informationen über den Browser und den Computer Ihrer Benutzer.
navigator.appName // "Netscape"
ECMAScript ist die Skriptsprache, die die Grundlage von JavaScript bildet. .JavaScript
language resources
ECMA-262
Links
Initial Edition, June 1997
PDF.
2nd Edition, August 1998
PDF.
3rd Edition, December 1999
PDF.
5th Edition, December 2009
PDF.
5.1 Edition, June 2011
HTML.
6th Edition, June 2015
HTML.
7ᵗʰ Edition, June 2016
HTML.
8th edition, June 2017
HTML.
9th Edition, 2018
HTML.
HINWEIS « 4. Ausgabe von ECMAScript nicht veröffentlicht, da die Arbeit unvollständig war .
JSON definiert einen kleinen Satz von Formatierungsregeln für die portable Darstellung strukturierter Daten.
► Schlüsselwerte müssen in Anführungszeichen gesetzt werden. Für Schlüssel sind nur Zeichenfolgen zulässig. Wenn Sie einen anderen als String verwenden, wird dieser in String konvertiert. Es wird jedoch nicht empfohlen, andere Schlüssel als die von String zu verwenden. Überprüfen Sie ein Beispiel wie dieses - { 'key':'val' }
vorbeiRFC 4627 - jsonformatter
var storage = {
0 : null,
1 : "Hello"
};
console.log( storage[1] ); // Hello
console.log( JSON.stringify( storage ) ); // {"0":null,"1":"Hello","2":"world!"}
var objLiteral = {'key1':'val1'};
var arr = [10, 20], arr2 = [ 'Yash', 'Sam' ];
var obj = { k: 'v' }, obj2 = { k2: 'v2' };
var fun = function keyFun() {} ;
objLiteral[ arr ] = 'ArrayVal'; objLiteral[ arr2 ] = 'OverridenArrayVal';
objLiteral[ obj ] = 'ObjectVal'; objLiteral[ obj2 ] = 'OverridenObjectVal';
objLiteral[ fun ] = 'FunctionVal';
console.log( objLiteral );
// Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
console.log( JSON.stringify( objLiteral ) );
// {"key1":"val1","10,20":"ArrayVal","Yash,Sam":"OverridenArrayVal","[object Object]":"OverridenObjectVal","function keyFun() {}":"FunctionVal"}
console.log( JSON.parse( JSON.stringify( objLiteral ) ) );
// Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
console.log('Accessing Array Val : ', objLiteral[ [10,20] ] );
console.log('Accessing Object Val : ', objLiteral[ '[object Object]' ] );
console.log('Accessing Function Val : ', objLiteral[ 'function keyFun() {}' ] );
► JSON-Zeichenfolgen müssen mit "und nicht" in Anführungszeichen gesetzt werden. Eine Zeichenfolge ähnelt stark einer C- oder Java-Zeichenfolge. Zeichenfolgen sollten in doppelte Anführungszeichen gesetzt werden.
- Literale sind feste Werte, keine Variablen, die Sie buchstäblich in Ihrem Skript angeben.
- Eine Zeichenfolge ist eine Folge von null oder mehr Zeichen, die in Anführungszeichen mit Backslash-Hemmung gesetzt sind. Dies ist die gleiche Notation, die in den meisten Programmiersprachen verwendet wird.
- 🔫 - Spezielle Symbole sind in Zeichenfolgen zulässig, werden jedoch nicht zur Verwendung empfohlen.
- \ "- Sonderzeichen können maskiert werden. Es wird jedoch nicht empfohlen, (') einfache Anführungszeichen zu maskieren. Im strengen Modus werden Fehler und Fehler ausgelöst.
SyntaxError: Unexpected token ' in JSON
Überprüfen Sie mit diesem Code { "Hai\" \n Team 🔫":5, "Bye \'": 7 }
über Online-JSON-Editionen.Modes
notStrict
,
Strinct
.
var jsonString = "{'foo': 452}"; // {'foo': 452}
var jsonStr = '{"foo": 452}'; // {"foo": 452}
JSON.parse( jsonString ); // Unexpected token ' in JSON at position 1(…)
JSON.parse( jsonStr ); // Object {foo: 452}
objLiteral['key'] = 'val'; // Object {foo: 42, key: "val"}
objLiteral.key2 = 'val';
// objLiteral.key\n3 - SyntaxError: Invalid or unexpected token
objLiteral['key\n3'] = 'val'; // Object {"foo": "42", key: "val", key2: "val", "key↵3": "val"}
JSON.stringify( objLiteral ); // {"foo":"42","key":"val","key2":"val","key\n3":"val"}
Objekt Eigenschaftenaccessoren ermöglicht den Zugriff auf die Eigenschaften eines Objekts durch die Punktnotation oder die Klammer - Notation.
► Sie haben einen begrenzten Wertebereich (zB keine Funktionen erlaubt). Ein Wert kann eine Zeichenfolge in doppelten Anführungszeichen, Zahl, Boolescher Wert, Null, Objekt oder Array sein. Diese Strukturen können verschachtelt werden.
var objLiteral = {};
objLiteral.funKey = function sayHello() {
console.log('Object Key with function as value - Its outcome message.');
};
objLiteral['Key'] = 'Val';
console.log('Object Literal Fun : ', objLiteral );
// Object Literal Fun : Object {Key: "Val"}Key: "Val"funKey: sayHello()__proto__: Object
console.log( JSON.stringify( objLiteral ) ); // {"Key":"Val"}
► JavaScript
ist die beliebteste Implementierung des ECMAScript-Standards. Die Hauptfunktionen von Javascript basieren auf dem ECMAScript-Standard, aber Javascript verfügt auch über andere zusätzliche Funktionen, die nicht in den ECMA-Spezifikationen / -Standards enthalten sind. Jeder Browser verfügt über einen JavaScript-Interpreter.
JavaScript ist eine dynamisch typisierte Sprache. Das heißt, Sie müssen den Datentyp einer Variablen nicht angeben, wenn Sie sie deklarieren, und die Datentypen werden bei Bedarf während der Skriptausführung automatisch konvertiert.
Literals
::
'37' - 7 // 30
'37' + 7 // "377"
+'37' + 7 // 44
+'37' // 37
'37' // "37"
parseInt('37'); // 37
parseInt('3.7'); // 3
parseFloat(3.7); // 3.7
// An alternative method of retrieving a number from a string is with the + (unary plus) operator:
+'3.7' // 3.7
Object literals
RFC 7159
Eine Objektstruktur wird als ein Paar geschweifter Klammern dargestellt, die null oder mehr Name / Wert-Paare (oder Elemente) umgeben. Ein Name ist eine Zeichenfolge. Nach jedem Namen steht ein einzelner Doppelpunkt, der den Namen vom Wert trennt. Ein einzelnes Komma trennt einen Wert von einem folgenden Namen. Die Namen innerhalb eines Objekts sollten eindeutig sein.
ECMAScript unterstützt die prototypbasierte Vererbung. Jedem Konstruktor ist ein Prototyp zugeordnet, und jedem von diesem Konstruktor erstellten Objekt ist ein impliziter Verweis auf den Prototyp (als Prototyp des Objekts bezeichnet) zugeordnet, der seinem Konstruktor zugeordnet ist. Darüber hinaus kann ein Prototyp einen impliziten Verweis ungleich Null auf seinen Prototyp haben und so weiter; Dies wird als Prototypkette bezeichnet.
In einer klassenbasierten objektorientierten Sprache wird der Status im Allgemeinen von Instanzen übertragen, Methoden werden von Klassen übertragen, und die Vererbung erfolgt nur über Struktur und Verhalten. In ECMAScript werden der Status und die Methoden von Objekten übertragen, und Struktur, Verhalten und Status werden alle vererbt.
Ein Prototyp ist ein Objekt, mit dem die Vererbung von Struktur, Status und Verhalten in ECMAScript implementiert wird. Wenn ein Konstruktor ein Objekt erstellt, verweist dieses Objekt implizit auf den zugehörigen Prototyp des Konstruktors, um Eigenschaftsreferenzen aufzulösen. Auf den dem Konstruktor zugeordneten Prototyp kann durch den Programmausdruck constructor.prototype verwiesen werden, und Eigenschaften, die dem Prototyp eines Objekts hinzugefügt wurden, werden durch Vererbung von allen Objekten gemeinsam genutzt, die den Prototyp gemeinsam nutzen.