- docx (Microsoft Word-Format);
- pdf (Adobe-Format);
- mobi (wird häufig auf Amazon Kindle-Geräten verwendet);
- und vieles mehr (ePub, djvu, fb2, etc.).
JSON
JavaScript-Objekt-Notation. Sie wissen bereits ein wenig über dieses Format! Wir haben in dieser Lektion darüber gesprochen und hier die Serialisierung in JSON behandelt . Es hat seinen Namen nicht ohne Grund. In JSON konvertierte Java-Objekte sehen tatsächlich genauso aus wie Objekte in JavaScript. Sie müssen kein JavaScript beherrschen, um unser Objekt zu verstehen:
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
Wir sind nicht darauf beschränkt, ein einzelnes Objekt zu versenden. Das JSON-Format kann auch ein Array von Objekten darstellen:
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
Da JSON JavaScript-Objekte darstellt, unterstützt es die folgenden JavaScript-Datenformate:
- Saiten;
- Zahlen;
- Gegenstände;
- Arrays;
- Boolesche Werte (wahr und falsch);
- Null.
-
Für Menschen lesbares Format. Dies ist ein offensichtlicher Vorteil, wenn Ihr Endbenutzer ein Mensch ist. Angenommen, Ihr Server verfügt über eine Datenbank mit einem Flugplan. Ein menschlicher Kunde, der zu Hause an seinem Computer sitzt, fordert über eine Webanwendung Daten aus dieser Datenbank an. Da Sie Daten in einem Format bereitstellen müssen, das er verstehen kann, ist JSON eine großartige Lösung.
-
Einfachheit. Es ist super einfach :) Oben haben wir ein Beispiel für zwei JSON-Dateien gegeben. Und selbst wenn Sie noch nie von JavaScript (geschweige denn von JavaScript-Objekten) gehört haben, können Sie die Art der dort beschriebenen Objekte leicht verstehen.
Die gesamte JSON-Dokumentation besteht aus einer Webseite mit einigen Bildern. -
Weit verbreitete Nutzung. JavaScript ist die dominierende Frontend-Sprache und hat ihre eigenen Anforderungen. Die Verwendung von JSON ist ein Muss. Daher verwenden zahlreiche Webdienste JSON als Datenaustauschformat. Jede moderne IDE unterstützt das JSON-Format (einschließlich IntelliJ IDEA). Es wurden zahlreiche Bibliotheken für alle möglichen Programmiersprachen geschrieben, um die Arbeit mit JSON zu ermöglichen.
YAML
Ursprünglich stand YAML für „Yet Another Markup Language“. Als es begann, wurde es als Konkurrent von XML positioniert. Im Laufe der Zeit bedeutet YAML nun „YAML Ain't Markup Language“. Was ist es genau? Stellen wir uns vor, dass wir drei Klassen erstellen müssen, um Charaktere in einem Computerspiel darzustellen: Krieger, Magier und Dieb. Sie werden die folgenden Eigenschaften haben: Kraft, Beweglichkeit, Ausdauer, eine Reihe von Waffen. So würde eine YAML-Datei, die unsere Klassen beschreibt, aussehen:
classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
Eine YAML-Datei hat eine Baumstruktur: Einige Elemente sind in anderen verschachtelt. Wir können die Verschachtelung mithilfe einer bestimmten Anzahl von Leerzeichen steuern, mit denen wir jede Ebene bezeichnen. Welche Vorteile bietet das YAML-Format?
-
Für Menschen lesbar. Auch wenn Sie eine YAML-Datei ohne Beschreibung sehen, können Sie die darin beschriebenen Objekte leicht verstehen. YAML ist so lesbar, dass die Website yaml.org eine gewöhnliche YAML-Datei ist :)
-
Kompaktheit. Die Dateistruktur wird mit Leerzeichen erstellt: Klammern oder Anführungszeichen sind nicht erforderlich.
-
Unterstützung nativer Datenstrukturen für Programmiersprachen. Der große Vorteil von YAML gegenüber JSON und vielen anderen Formaten besteht darin, dass es verschiedene Datenstrukturen unterstützt. Sie beinhalten:
-
!!map
Eine ungeordnete Menge von Schlüssel-Wert-Paaren, die keine Duplikate haben dürfen; -
!!omap
Eine geordnete Folge von Schlüssel-Wert-Paaren, die keine Duplikate haben dürfen; -
!!Paare:
Eine geordnete Folge von Schlüssel-Wert-Paaren, die Duplikate haben können; - !!set
Eine ungeordnete Folge von Werten, die einander nicht entsprechen; - !!seq
Eine Folge beliebiger Werte;
Einige dieser Strukturen werden Sie aus Java kennen! :) Das bedeutet, dass verschiedene Datenstrukturen aus Programmiersprachen in YAML serialisiert werden können.
-
-
Möglichkeit, Anker und Alias zu verwenden
Mit diesen Markierungen können Sie ein Element in einer YAML-Datei identifizieren und dann im Rest der Datei darauf verweisen, wenn es wiederholt vorkommt. Ein Anker wird mit dem Symbol & erstellt und ein Alias wird mit * erstellt .
Angenommen, wir haben eine Datei, in der Bücher von Leo Tolstoi beschrieben werden. Um zu vermeiden, dass für jedes Buch der Name des Autors ausgeschrieben wird, erstellen wir einfach den Leo-Anker und verweisen bei Bedarf mit einem Alias darauf:
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
Wenn diese Datei analysiert wird, wird der Wert „Leo Tolstoy“ an den richtigen Stellen ersetzt, an denen wir unsere Aliase haben.
- YAML kann Daten in anderen Formaten einbetten. Zum Beispiel JSON:
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
Andere Serialisierungsformate
XML
Dieses Format basiert auf einem Tag-Baum.
<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Jedes Element besteht aus einem öffnenden und schließenden Tag (<> und </>). Jedes Element kann verschachtelte Elemente haben. XML ist ein gängiges Format, das genauso gut ist wie JSON und YAML (wenn es um echte Projekte geht). Wir haben eine separate Lektion über XML .
BSON (binärer JSON)
Wie der Name schon sagt, ist BSON JSON sehr ähnlich, ist jedoch nicht für Menschen lesbar und verwendet Binärdaten. Dadurch eignet es sich sehr gut zum Speichern und Übertragen von Bildern und anderen Anhängen. Darüber hinaus unterstützt BSON einige Datentypen, die in JSON nicht verfügbar sind. Beispielsweise kann eine BSON-Datei ein Datum (im Millisekundenformat) oder sogar einen Teil des JavaScript-Codes enthalten. Die beliebte NoSQL-Datenbank MongoDB speichert Informationen im BSON-Format.Positionsbasiertes Protokoll
In manchen Situationen müssen wir die Menge der gesendeten Daten drastisch reduzieren (z. B. wenn wir viele Daten haben und die Last reduzieren müssen). In dieser Situation können wir das positionsbasierte Protokoll verwenden, d. h. Parameterwerte ohne die Namen der Parameter selbst senden.
"Leo Tolstoy" | "Anna Karenina" | 1873
Daten in diesem Format benötigen ein Vielfaches weniger Platz als eine vollständige JSON-Datei. Natürlich gibt es noch andere Serialisierungsformate, aber Sie müssen jetzt nicht alle kennen :) Es ist gut, wenn Sie bei der Entwicklung von Anwendungen mit den aktuellen Industriestandardformaten vertraut sind und sich an deren Vorteile und Unterschiede erinnern andere. Und damit ist unsere Lektion zu Ende :) Vergessen Sie nicht, heute ein paar Aufgaben zu lösen! Bis zum nächsten Mal! :) :)
GO TO FULL VERSION