- docx (Microsoft Word-Format);
- pdf (Adobe-Format);
- mobi (häufig in Amazon Kindle-Geräten verwendet);
- und vieles mehr (ePub, djvu, fb2...).
JSON
JavaScript-Objekt-Notation. Du kennst ihn schon ein wenig! Wir haben in dieser Vorlesung darüber gesprochen und uns hier mit der Serialisierung in JSON befasst . Es hat seinen Namen nicht ohne Grund. In JSON konvertierte Java-Objekte sehen tatsächlich genauso aus wie JavaScript-Objekte. Sie müssen kein JavaScript beherrschen, um die Bedeutung unseres Objekts zu verstehen:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Es ist nicht notwendig, ein Objekt zu übergeben. JSON kann auch ein Array von Objekten enthalten:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
Da JSON ein JavaScript-Objekt ist, unterstützt es die folgenden JavaScript-Datenformate:
- Saiten;
- Zahlen (Anzahl);
- Objekte (Objekt);
- Arrays (Array);
- boolesche Werte (wahr und falsch);
- Null.
-
Für Menschen lesbares Format. Dies ist ein offensichtlicher Vorteil, wenn Ihr Endbenutzer ein Mensch ist. Ihr Server speichert beispielsweise eine Datenbank mit Flugplänen. Ein menschlicher Client fordert mithilfe einer Webanwendung Daten aus dieser Datenbank an, während er zu Hause am Computer sitzt. Da Sie die Daten in einem für ihn verständlichen Format bereitstellen müssen, ist JSON eine großartige Lösung.
-
Einfachheit. Man könnte sagen, es ist elementar :) Oben haben wir ein Beispiel für zwei JSON-Dateien gegeben. Und selbst wenn Sie noch nie von der Existenz von JavaScript (geschweige denn seinen Objekten) gehört haben, können Sie leicht verstehen, welche Art von Objekten dort beschrieben werden.
Die gesamte JSON-Dokumentation besteht aus einer Webseite mit einigen Bildern. -
Weit verbreitet. JavaScript ist die dominierende Frontend-Sprache und bestimmt ihre Bedingungen. Die Verwendung von JSON ist ein Muss. Daher verwenden zahlreiche Webdienste JSON als Format für den Datenaustausch. Jede moderne IDE unterstützt das JSON-Format (einschließlich Intellij IDEA). Für die Arbeit mit JSON wurde eine Reihe von Bibliotheken für alle möglichen Programmiersprachen geschrieben.
YAML
Zu Beginn seiner Existenz stand es für Yet Another Markup Language – „eine andere Auszeichnungssprache“. Damals galt es als Konkurrent von XML. Mittlerweile steht es für „YAML Ain't Markup Language“ („YAML ist keine Auszeichnungssprache“). Wie ist er? Stellen wir uns vor, dass wir drei Charakterklassen für unser Computerspiel erstellen müssen: Krieger, Magier und Dieb. Sie verfügen über die folgenden Eigenschaften: Stärke, Beweglichkeit, Ausdauer und eine Reihe von Waffen. So sieht unsere YAML-Datei mit Klassenbeschreibungen aus: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
Die YAML-Datei hat eine Baumstruktur: Einige Elemente sind in anderen verschachtelt. Wir können die Verschachtelung steuern, indem wir eine bestimmte Anzahl von Leerzeichen verwenden, um jede Ebene zu kennzeichnen. Welche Vorteile bietet das YAML-Format?
-
Für Menschen lesbar. Auch wenn Sie eine Yaml-Datei ohne Beschreibung sehen, können Sie leicht verstehen, welche Objekte dort beschrieben werden. YAML gibt an, wie gut für Menschen lesbar ist, dass die Hauptseite von yaml.org eine normale Yaml-Datei ist :)
-
Kompaktheit. Die Dateistruktur wird durch Leerzeichen gebildet: Klammern oder Anführungszeichen sind nicht erforderlich.
-
Unterstützung für in Programmiersprachen native Datenstrukturen. Ein großer Vorteil von YAML gegenüber JSON und vielen anderen Formaten besteht darin, dass es unterschiedliche Datenstrukturen unterstützt. Darunter:
-
!!map
Eine ungeordnete Sammlung von Schlüssel:Wert-Paaren ohne Möglichkeit von Duplikaten; -
!!omap
Eine geordnete Folge von Schlüssel-Wert-Paaren ohne Möglichkeit von Duplikaten; -
!!Paare:
Eine geordnete Folge von Schlüssel:Wert-Paaren mit der Möglichkeit von Duplikaten; - !!set
Eine ungeordnete Folge von Werten, die einander nicht gleich sind; - !!seq
Folge beliebiger Werte;
Einige dieser Strukturen werden Ihnen aus Java bekannt sein! :) Dank dieser Funktion können Sie verschiedene Datenstrukturen aus Programmiersprachen in das YAML-Format serialisieren.
-
-
Möglichkeit, Anker und Alias zu verwenden
Übersetzung der Wörter „Anker“ und „Alias“ – „Anker“ und „Pseudonym“. Im Prinzip beschreibt es die Essenz dieser Begriffe in YAML ziemlich genau.
Sie ermöglichen es Ihnen, ein Element in einer Yaml-Datei zu identifizieren und im Rest der Datei darauf zu verweisen, wenn es wiederholt vorkommt. Der Anker wird mit dem Symbol erstellt
&
und der Alias wird mit erstellt*
.Nehmen wir an, wir haben eine Datei mit Beschreibungen der Bücher von Leo Tolstoi. Um zu vermeiden, dass wir den Namen des Autors jedes Mal manuell schreiben müssen, erstellen wir einfach einen Anker „leo“ 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 wir diese Datei mit einem Parser lesen, wird der Wert „Leo Tolstoy“ an den richtigen Stellen anstelle unseres Alias eingesetzt.
- Sie können Daten in anderen Formaten in YAML 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 dem sogenannten Tag-Tree.<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 JSON und YAML in nichts nachsteht (wenn wir über die Verwendung in realen Projekten sprechen). Wir haben einen separaten Vortrag über XML .
BSON (binärer JSON)
Wie der Name schon sagt, ist es JSON sehr ähnlich, ist jedoch nicht für Menschen lesbar und arbeitet mit Daten im Binärformat. Dadurch ist das Speichern und Übertragen von Bildern und anderen Anhängen sehr praktisch. Darüber hinaus unterstützt BSON einige Datentypen, die in JSON nicht verfügbar sind. Sie können beispielsweise ein Datum (im Millisekundenformat) oder sogar einen Teil des JavaScript-Codes in eine BSON-Datei schreiben. Die beliebte NoSQL-Datenbank MongoDB speichert Informationen im BSON-Format.Positionsbasiertes Protokoll
In manchen Situationen müssen wir die übertragene Datenmenge drastisch reduzieren (z. B. wenn viele Daten vorhanden sind und wir die Last reduzieren müssen). In dieser Situation können wir ein positionbasiertes Protokoll verwenden , das heißt, Parameterwerte ohne die Namen der Parameter selbst übergeben."Leo Tolstoy" | "Anna Karenina" | 1873
Daten in diesem Format nehmen viel weniger Platz ein als eine vollwertige JSON-Datei. Natürlich gibt es noch andere Serialisierungsformate, aber Sie müssen sie jetzt nicht alle kennen :) Es ist gut, mit den Formaten vertraut zu sein, die heute der Industriestandard für die Anwendungsentwicklung sind, und sich an ihre Vorteile und Unterschiede untereinander zu erinnern . Und unser Vortrag ist zu Ende :) Vergessen Sie nicht, heute ein paar Probleme zu lösen! Wir sehen uns wieder! :) :)
GO TO FULL VERSION