- docx (Microsoft Word 形式);
- pdf (Adobe 形式);
- mobi (Amazon Kindle デバイスで一般的に使用されます)。
- などなど (ePub、djvu、fb2...)
JSON
JavaScript オブジェクト表記法。あなたはすでに彼のことを少し知っています!この講義ではこれについて説明し、ここではJSON でのシリアル化について説明しました。それには理由があってその名前が付けられました。JSON に変換された Java オブジェクトは、実際には JavaScript オブジェクトとまったく同じように見えます。オブジェクトの意味を理解するために JavaScript を理解する必要はありません。{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
1 つのオブジェクトを渡す必要はありません。JSON にはオブジェクトの配列を含めることもできます。
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
JSON は JavaScript オブジェクトであるため、次の JavaScript データ形式をサポートします。
- 文字列;
- 数字(数字);
- オブジェクト (オブジェクト);
- 配列 (配列);
- ブール値 (true と false);
- ヌル。
-
人間が読める形式。エンド ユーザーが人間である場合、これは明らかな利点です。たとえば、サーバーにはフライト スケジュールを含むデータベースが保存されています。人間のクライアントは、自宅のコンピューターに座っているときに、Web アプリケーションを使用してこのデータベースにデータを要求します。データを彼が理解できる形式で提供する必要があるため、JSON は優れたソリューションです。
-
シンプルさ。これは初歩的だと言えるかもしれません :) 上では 2 つの JSON ファイルの例を示しました。また、JavaScript の存在 (オブジェクトはおろか) を聞いたことがなくても、そこにどのようなオブジェクトが記述されているかを簡単に理解できます。
JSON ドキュメント全体は、いくつかの画像を含む1 つのWeb ページです。 -
広く普及しています。JavaScript は主要なフロントエンド言語であり、JavaScript がその用語を決定します。JSON の使用は必須です。したがって、膨大な数の Web サービスがデータ交換の形式として JSON を使用しています。最新の IDE はすべて JSON 形式をサポートしています (Intellij IDEA を含む)。考えられるすべてのプログラミング言語の JSON を操作するために、多数のライブラリが作成されています。
YAML
その存在の当初は、Yet Another Markup Language、つまり「別のマークアップ言語」を表していました。当時、XML の競合他社として位置付けられていました。時が経った現在、これは「YAML Ain't Markup Language」(「YAML はマークアップ言語ではない」)の略です。彼はどういう感じ?コンピューター ゲーム用に、Warrior、Mage、Thief の 3 つのキャラクター クラスを作成する必要があると想像してみましょう。彼らは次のような特徴を持っています: 強さ、敏捷性、持久力、そして一連の武器。クラスの説明を含む YAML ファイルは次のようになります。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
YAML ファイルはツリー構造になっており、一部の要素は他の要素内にネストされています。各レベルを示すために特定の数のスペースを使用することで、入れ子を制御できます。YAML 形式にはどのような利点がありますか?
-
人間が読める形式。繰り返しになりますが、説明のない yaml ファイルを見ても、そこにどのようなオブジェクトが記述されているかは簡単に理解できます。YAML は、 yaml.orgのメイン ページが通常の yaml ファイルであることを人間がどの程度読みやすいかを表します :)
-
コンパクトさ。ファイル構造はスペースで形成されます。括弧や引用符を使用する必要はありません。
-
プログラミング言語に固有のデータ構造のサポート。JSON や他の多くの形式に対する YAML の大きな利点は、さまざまなデータ構造をサポートしていることです。その中で:
-
!!map
重複の可能性がない、順序付けされていないキー:値のペアのコレクション。 -
!!omap
重複の可能性がない、キー:値のペアの順序付けされたシーケンス。 -
!!pairs:
重複の可能性があるキーと値のペアの順序付けされたシーケンス。 - !!set
互いに等しくない、順序のない値のシーケンス。 - !!seq
任意の値のシーケンス。
これらの構造の中には、Java でよく知られているものもあります。:) この機能のおかげで、プログラミング言語のさまざまなデータ構造を YAML 形式にシリアル化できます。
-
-
アンカーとエイリアスを使用する機能
「アンカー」と「エイリアス」という言葉の翻訳 - 「アンカー」と「仮名」。原則として、YAML ではこれらの用語の本質が非常に正確に説明されています。
これらを使用すると、yaml ファイル内の要素を識別し、それが繰り返し発生する場合にファイルの残りの部分でその要素を参照できます。アンカーはシンボルを使用して作成され
&
、エイリアスは を使用して作成されます*
。レフ・トルストイの本の説明を含むファイルがあるとします。作成者の名前を毎回手動で記述することを避けるために、単純にアンカー「leo」を作成し、必要なときにエイリアスを使用してそれを参照します。
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
このファイルをパーサーで読み取ると、エイリアスの代わりに値「Leo Tolstoy」が適切な場所に置き換えられます。
- YAML には他の形式のデータを埋め込むことができます。たとえば、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 } ]
他のシリアル化形式
XML
この形式は、いわゆるタグ ツリーに基づいています。<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
各要素は開始タグと終了タグ (<> と </>) で構成されます。各要素にはネストされた要素を含めることができます。XML は一般的な形式であり、(実際のプロジェクトでの使用について言えば) JSON や YAML に劣りません。XML については別の講義を用意しています。
BSON (バイナリ JSON)
その名前が示すように、JSON に非常に似ていますが、人間が判読できるものではなく、バイナリ形式のデータを操作します。これにより、画像やその他の添付ファイルの保存と転送に非常に便利になります。さらに、BSON は、JSON では使用できないいくつかのデータ型をサポートします。たとえば、日付 (ミリ秒形式) や JavaScript コードの一部を BSON ファイルに書き込むことができます。人気の NoSQL データベース MongoDB は、情報を BSON 形式で保存します。位置ベースのプロトコル
状況によっては、転送されるデータ量を大幅に減らす必要がある場合があります (たとえば、大量のデータがあり、負荷を軽減する必要がある場合)。この状況では、位置ベースのプロトコルを使用できます。つまり、パラメーター自体の名前なしでパラメーター値を渡すことができます。"Leo Tolstoy" | "Anna Karenina" | 1873
この形式のデータは、本格的な JSON ファイルよりもはるかに少ないスペースを必要とします。もちろん、他のシリアル化形式もありますが、今すぐすべてを知る必要はありません :) 現在アプリケーション開発の業界標準となっている形式についてよく理解し、それぞれの利点と相互の違いを覚えておくと良いでしょう。 。そして私たちの講義は終わりました :) 今日はいくつかの問題を解くことを忘れないでください! またね!:)
GO TO FULL VERSION