Websites

JSON Data Interchange Format erhält Standards Blessing

Customizing Cloud9 and the CS50 IDE by Dan Armendariz

Customizing Cloud9 and the CS50 IDE by Dan Armendariz
Anonim

Eine aufstrebende leichte Daten Das Austauschformat für Web-Anwendungen, das von einer wachsenden Anzahl von Menschen als Alternative zu XML angesehen wird, hat von der Normungsorganisation Ecma einen Schub bekommen.

Die Ecma-Generalversammlung hat die fünfte Ausgabe von ECMAScript gebilligt, nach Istvan Sebestyen, Generalsekretär der Organisation. In dieser neuen Version von ECMAScript, von der das populäre JavaScript ein Dialekt ist, wird native Unterstützung für die Verwendung von JavaScript Object Notation (JSON) angeboten.

Diese Aufnahme "wird sicherlich großen Einfluss auf Entwickler haben", sagte Douglas Crockford, der Yahoo Software-Architekt als Schöpfer von JSON zitiert.

"JSON ist bereits ziemlich weit verbreitet in Web-Anwendungen. Indem JSON in die ECMAScript-Sprache eingebaut wird, werden [JSON] Implementierungen schneller und sicherer", sagte Crockford. Die Genehmigung ist auch ein Zeichen dafür, dass die Web-Anwendungsentwicklungs-Community von der Verwendung von XML als dem einzigen gewünschten Standard für den Austausch von Daten zwischen unterschiedlichen Systemen abrückt, zumindest in jenen Fällen, in denen die Lieferung von relativ einfachen strukturierten Daten erforderlich ist Der Standard mit dem offiziellen Titel ECMA-262 enthält ein Objekt zum Erstellen und Analysieren von JSON-Texten. Zum größten Teil folgt es der Internet Engineering Task Force RFC 4627 von 2006, die von Crockford verfasst wurde. Der neue ECMAScript-Standard versucht, eine Reihe von Sicherheitsproblemen rund um JSON zu beheben.

In den letzten Jahren hat eine wachsende Anzahl von Webanwendungsentwicklern JSON anstelle von XML-basierten Ansätzen wie dem Simple Object Access Protocol verwendet, um diese zu markieren Daten, so dass es zwischen zwei Computern übertragen werden kann. Dadurch entstanden zwei manchmal gegensätzliche Camps innerhalb der Web Application Development Community.

"Die Trennung zwischen den JSON- und XML-Befürwortern ist stark und wird auf absehbare Zeit anhalten", sagte Daniel Markham, ein Ajax-Architekt und Hauptpartner des Virginia Beratungsfirma Bedford Technology Group.

Befürworter haben JSON für seine Einfachheit gelobt. Laut RFC wurde JSON speziell für die "Serialisierung von strukturierten Daten" entwickelt. JSON ist eine Reihe von Konventionen oder eine Grammatik, wie die zu sendenden Daten geordnet werden, damit sie vom Empfänger analysiert werden können. Es borgt JavaScript-Regeln zum Formatieren von Objekten und Arrays. Im Gegensatz dazu verwendet XML schemabasierte Markup-Tags, die dazu neigen, die Datasets größer und komplexer als die in JSON generierten Datasets zu machen.

"Ich bin ein Fan von JSON gegenüber XML, hauptsächlich weil XML sehr viel hat von syntaktischem Fluff muss man graben, um etwas Nützliches daraus zu ziehen. Es gibt nur eine zusätzliche kognitive Last, die man nicht hat, wenn seine JavaScript-Objekte eng mit den Server-Entitäten übereinstimmen ", sagte Markham. Markham bemerkte auch, dass XML eine Flexibilität hat, die JSON nicht erfüllen kann. "XML bleibt das Schweizer Taschenmesser des Internets: Es kann alle Arten von Daten von jedem Connector verarbeiten", sagte er.

Crockford formulierte JSON im Jahr 2001, als er an einer Reihe von Webanwendungen mit den Ajax-Tools zur Webentwicklung arbeitete mit JavaScript, XML und HTML. Er fand XML zu umfangreich für seine Bedürfnisse. "XML war einfach unentschuldbar hässlich und ineffizient, und so kamen wir auf die Verwendung von JavaScript's eigener Datenrepräsentation, um die Daten darzustellen", sagte Crockford. Crockford wird allgemein als der Erfinder von JSON zitiert, obwohl er bescheiden ist, diese Appellation anzunehmen. "Es existierte bereits in der Natur. Ich habe es gerade entdeckt", sagte er.

Seit seiner Gründung im Jahr 2001 hat JSON an Popularität gewonnen. Die JSON.org-Site listet eine Reihe von JSON-Konvertern für Sprachen wie Perl, Active Server Pages, PHP, C, Java, Python und andere auf. Yahoo unterstützt JSON für seine Webdienste. Die neuesten Versionen von Internet Explorer und Firefox unterstützen JSON. JSON "sieht so aus, als wäre es das erste Stück von ECMAScript 5, das universell eingeführt wird", sagte Crockford.

JSON selbst war schon immer ein Teil von ECMAScript, zumindest insofern, als Crockford die ECMAScript-Grammatik als Grundlage für JSON verwendete. Der Unterschied zu ECMAScript 5, so Crockford, besteht darin, dass ECMAScript über eine integrierte Bibliotheksunterstützung für JSON verfügt. Dies hilft bei Sicherheitsfragen.

Die meisten Entwickler haben die Funktion JavaScript eval () verwendet, um JSON-basierten Text in verwendbare Datenstrukturen zu parsen. Sicherheitsfachleute betrachten diesen Ansatz als Sicherheitslücke, da diese Form der Eingabe Drittanbietern das Einfügen von bösartigem Code ermöglichen könnte. Der neue Parser eliminiert die Notwendigkeit, die Funktion eval () zu verwenden, sagte Crockford.

Tim Bray, ein Mitgründer des XML-Formats und Leiter der Web-Technologien bei Sun Microsystems, bemerkte, dass XML-Praktiker, mit denen er zusammengearbeitet hat Wert von JSON. "XML verfügt über eine Reihe von Funktionen, die den Austausch von Dokumenten (Blog-Stücke, Pressemitteilungen, medizinische Aufzeichnungen) ermöglichen, und diese können für den Austausch reiner Daten überflüssig sein", notierte er per E-Mail. "JSON funktioniert wirklich gut für den Austausch dieser Art von Sachen und, wie XML, ist schön herstellerunabhängig."

Bray bezweifelt, dass der ECMA-Segen viel Einfluss auf die weitere JSON-Adoption haben wird, da sie bereits weit verbreitet ist und nicht funktioniert. Sie leiden unter den Interoperabilitätsproblemen, mit denen Standards normalerweise konfrontiert sind. "Es ist offensichtlich, dass die ECMAScript [Revision] keinen Schaden nimmt, da sie die Realität von JSON erkennt [aber] JSON ist bereits tief in der Web-IT-Kultur verankert."

ECMAScript ist die herstellerunabhängige Version der JavaScript-Programmiersprache erstellt von Netscape als Skriptsprache für Webbrowser.