Meine Anforderung besteht nur darin, eine Reihe von Werten anzuzeigen, die in einem Spread aus der Datenbank abgerufen wurden. Ich benutze jquery.
javascript
jquery
xml
json
Sarego
quelle
quelle
Ich verwende JSON, es sei denn, ich muss XML verwenden. Es ist einfacher zu verstehen und (da es weniger Konfigurationsaufwand erfordert) einfacher zu programmieren, um zu lesen und zu schreiben, wenn die Bibliotheken in Ihrem Kontext verfügbar sind, und sie sind jetzt ziemlich allgegenwärtig.
Als Amazon seine Kataloge zum ersten Mal als Webdienst zur Verfügung stellte, boten sie sowohl JSON als auch XML an. Etwa 90% der Implementierer haben sich für JSON entschieden.
quelle
In Anbetracht Ihres speziellen Falls, in dem Sie bereits auf der Clientseite Javascript ausführen, würde ich mich aus folgenden Gründen für JSON entscheiden:
Da JSON in Javascript nativ ist, müssten Sie weniger Code auf der Clientseite schreiben - nur
eval()
(oder noch besserJSON.parse()
) die JSON-Zeichenfolge und ein Objekt erhalten, das Sie verwenden können.Gleichzeitig wird die clientseitige Evaluierung von JSON effizienter und damit schneller.
Die JSON-Serialisierung erzeugt kürzere Zeichenfolgen als XML. Durch die Verwendung von JSON wird die Datenmenge reduziert, die über das Kabel übertragen wird, und die Leistung in dieser Hinsicht verbessert.
Hier einige weitere Informationen: http://www.subbu.org/blog/2006/08/json-vs-xml
quelle
eval()
JSON ing ein großes no-no?Einige andere Dinge, auf die ich im XML vs JSON relm gestoßen bin:
JSON ist sehr gut für
Was bedeutet, dass es dazu neigt, ein Array oder ein verschachteltes Array zu mögen. JSON fehlen jedoch beide
Wenn Sie also zwei oder mehr JSON-Dienste kombinieren, kann dies zu potenziellen Namespace-Konflikten führen. Davon abgesehen kann JSON nach meiner Erfahrung für etwa 90% der gleichen Dinge verwendet werden, für die XML beim Datenaustausch verwendet werden kann.
quelle
Normalerweise ist JSON kompakter und schneller zu analysieren.
Bevorzugen Sie XML, wenn:
Ein wichtiger Fall von (fast) XML: Der Versuch, beim Senden von HTML-Snippets zu erkennen, ist vorteilhafter als das Senden von Rohdaten. AHAH kann in einfachen Anwendungen Wunder wirken, wird jedoch häufig übersehen. Normalerweise setzt dieser Stil voraus, dass ein Server HTML-Snippets sendet, die ohne Verarbeitung auf der Webseite eingefügt werden.
Normalerweise wird in AHAH-Fällen CSS maximal genutzt, um Snippets visuell zu massieren und einfache Bedingungen wie das Ausblenden / Anzeigen relevanter Teile des Snippets mithilfe benutzerspezifischer oder anwendungsspezifischer Einstellungen zu implementieren.
quelle
JSON ist einfach und schneller zu analysieren. XML ist etwas schwieriger zu analysieren und langsamer zu analysieren und zu übertragen (in den meisten Fällen).
Da Sie jQuery verwenden, empfehle ich die Verwendung von JSON: jQuery kann JSON-Daten abrufen und automatisch in ein Javascript-Objekt konvertieren. Tatsächlich können Sie JSON-Daten mit eval in ein Javascript-Objekt konvertieren . XML müsste von Ihnen manuell übertragen werden (ich weiß nicht, wie dies in Javascript funktioniert, aber es ist in den meisten Sprachen, mit denen ich XML-Bibliotheken verwendet habe, schwierig / ärgerlicher).
quelle
JSON ist in Bezug auf die Verarbeitung, die der Client-Browser zum Parsen der Daten ausführen muss, immer vorzuziehen. Außerdem ist JSON ein leichtes Datenaustauschformat.
XML-Parsing verbraucht immer viele Browser-Ressourcen und sollte so weit wie möglich vermieden werden, sofern nichts anderes erforderlich ist.
quelle
Ich habe einen Blog-Beitrag zu diesem Thema, der die Geschichte der Webprotokolle (z. B. SOAP, XML, JSON, REST, POX usw.) ausführlich beschreibt und eine Zusammenfassung sowie einige Vor- und Nachteile der einzelnen Protokolle enthält: http://www.servicestack.net / mythz_blog /? p = 154
Ich denke tatsächlich, dass Sie viele Ähnlichkeiten zwischen XML und JSON ziehen können, indem Sie die Unterschiede zwischen dynamischen (JSON) und statischen (XML) Sprachen vergleichen.
Grundsätzlich ist XML ein strengeres, starreres Serialisierungsformat, das optional mit einem zugehörigen Schema (entweder eine XSD oder eine DTD) überprüft werden kann. XSDs sind recht aufwendig und ermöglichen es Ihnen, viele verschiedene Typen zu beschreiben, z. B. Daten, Zeiten, Aufzählungen, benutzerdefinierte Typen und sogar Typvererbung usw. SOAP baut effektiv auf dem XML-Funktionsumfang auf und bietet eine standardisierte Möglichkeit zur Beschreibung Ihrer Webdienste ( zB Typen und Operationen) über eine WSDL. Die Ausführlichkeit und Komplexität der WSDL-Spezifikation bedeutet, dass die Entwicklung mühsamer sein kann. Gleichzeitig stehen Ihnen jedoch viel mehr Tools zur Verfügung, und die meisten modernen Sprachen bieten automatisierte Tools zum Generieren Ihrer Client-Proxys, die einen Teil der Belastung übernehmen Aus, wenn versucht wird, mit externen Diensten zusammenzuarbeiten.
Ich würde weiterhin empfehlen, XML für Ihre Webdienste zu verwenden, wenn Sie einen genau definierten "Unternehmensdienst" haben, der nicht häufig geändert wird, oder auf Ihren Webdienst aus vielen verschiedenen Sprachen zugegriffen werden muss.
Bei all seinen Vorteilen hat XML auch Nachteile. Es basiert auf Namespaces, um ein typisiertes erweiterbares Format bereitzustellen, und ermöglicht es Ihnen, Attribute und Elemente innerhalb desselben Dokuments anzugeben. Wenn Sie in einem Dokument unterschiedliche Namespaces haben, bedeutet dies viel Zeit, wenn Sie einen XML-Parser zum Extrahieren von Daten verwenden. Außerdem müssen Sie den Namespace jedes Elements angeben, das Sie abrufen / durchlaufen möchten. Außerdem wird die Nutzlast extrapoliert, wodurch sie ausführlicher wird, als sie sein muss. Die Option, sowohl Attribute als auch Elemente auszugeben, bedeutet, dass Ihre Klassen nicht gut einem XML-Dokument zugeordnet werden können. Allein diese Funktionen machen es für die meisten Sprachen zu einer schlechten programmatischen Anpassung, was die Arbeit mühsamer und umständlicher macht.
JSON hingegen ist in vielerlei Hinsicht das genaue Gegenteil von XML, da es sehr lose typisiert ist und nur einfache Typen unterstützt: Number, Bool, String, Objects und Arrays. Alles andere muss im Wesentlichen in eine Zeichenfolge passen. Dies ist nicht besonders hilfreich, wenn Sie versuchen, über Sprachgrenzen hinweg zu kommunizieren, da Sie einige nicht standardmäßige Out-of-Band-Spezifikationen einhalten müssen, wenn Sie spezifischere Typen unterstützen möchten. Auf der anderen Seite passt sein begrenzter Funktionsumfang gut programmatisch zu den meisten Sprachen - und ist perfekt für JavaScript geeignet, da eine JSON-Zeichenfolge direkt in ein JavaScript-Objekt ausgewertet werden kann.
Größe und Leistung
Ich habe einige Benchmarks für Northwind-Datenbanken zur Verfügung , die die Größe und Geschwindigkeit zwischen Microsoft XML- und JSON-Implementierungen vergleichen. Grundsätzlich ist XML mehr als doppelt so groß wie JSON, aber gleichzeitig sieht es so aus, als ob Microsoft große Anstrengungen unternommen hat, um den XML DataContractSerializer zu optimieren, da er mehr als 30% schneller als der JSON ist. Es scheint, dass Sie einen Kompromiss zwischen Größe und Leistung eingehen müssen. Da ich mit dieser Tatsache nicht zufrieden bin, habe ich beschlossen, meinen eigenen schnellen JsonSerializer zu schreiben, der jetzt 2,6- mal schneller ist als der XML- Code von MS - also das Beste aus beiden Welten :).
quelle
Ich würde XML anstelle von JSON wählen, wenn ich den Teil der eingehenden Daten validieren muss, da XML dies nativ über XSD unterstützt.
quelle
von JSON - die letzten Füße
quelle
JSON ist die native Codierung für Javascript. Es sollte viel schneller und einfacher zu bearbeiten sein.
quelle
Aus der ersten Zeile unter http://json.org/xml.html
Natürlich ist JSON schneller, aber es ist noch deutlicher, dass es schwer zu lesen ist. Verwenden Sie JSON für die Geschwindigkeit, verwenden Sie XML, wenn es eine menschliche Interaktion gibt, und Sie können die Geschwindigkeit opfern.
quelle
Ich verwende JSON für jede Art von Konfiguration, Datenaustausch oder Messaging. Ich verwende XML nur, wenn ich aus anderen Gründen oder um dokumentähnliche Daten semantisch markieren muss.
quelle
Sowohl XML als auch JSON werden von Microsoft unterstützt. XML-Literale waren die neue coole Funktion in VB 9. In der kommenden Version von ASP.NET 4.0 ist JSON ein Muss, um die Leistungsfähigkeit des clientseitigen Templating zu nutzen.
Aus der von Ihnen gestellten Frage geht hervor, dass JSON möglicherweise die richtige Wahl für Sie ist, da es auf Clientseite mit oder ohne jQuery einfach zu verarbeiten ist.
quelle
Verwenden von JSON
Verwenden von XML
quelle
Ich fand diesen Artikel auf dem digitalen Basar wirklich interessant.
Einige Teile des Artikels sind unten zitiert.
Über JSON-Profis:
Über XML-Profis:
quelle
Schnelle Regeln:
Erläuterung:
Die einzige Aufgabe von JSON besteht darin, objektorientierte Daten unter Verwendung der Datentypen zu serialisieren, die den meisten Programmiersprachen gemeinsam sind: Listen , Hashes und Skalare . Zu diesem Zweck sind sie wirklich nicht zu übertreffen oder zu verbessern. "JSON hat keine Versionsnummer [da] keine Überarbeitungen der JSON-Grammatik erwartet werden". - Douglas Crockford (Unschlagbar als Zeichen dafür, dass Sie Ihren Job perfekt machen)
XML wurde früher als Datenaustauschformat verkauft, berücksichtigt jedoch die beiden häufigsten Anwendungsfälle: Asynchrone Client-Server-Kommunikation (AJAX) - JSON hat XML so gut wie vollständig ersetzt (das X sollte eigentlich ein J sein) und Webdienste : JSON hat XML zu einer redundanten Alternative gemacht.
Das andere, wofür XML weit verbreitet war, waren vom Menschen beschreibbare / lesbare (?) Datendateien für Programme, aber auch hier haben Sie ein prägnanteres, programmfreundlicheres und menschlicheres Format in YAML, einer JSON-Obermenge.
Für die Datendarstellung schlägt JSON XML auf ganzer Linie. Was bleibt dann für XML übrig? Dokumentendarstellung mit gemischtem Inhalt, wofür sie gedacht war .
quelle
Die meisten neueren Webtechnologien arbeiten mit JSON, was definitiv ein guter Grund für die Verwendung von JSON ist. Ein großer Vorteil ist, dass Sie in XML dieselben Informationen auf mehrere verschiedene Arten darstellen können, was in JSON einfacher ist.
Auch JSON IMHO ist viel klarer als XML, was es für mich zu einem klaren Vorteil macht. Und wenn Sie mit .NET arbeiten, ist Json.NET ein klarer Gewinner, der Ihnen bei der Arbeit mit JSON hilft.
quelle