YAMLやJSONが登場する以前は、さまざまな方法で構造化データをシリアライズしていました。以下、代表的な方法をいくつか紹介します。
1. XML
Extensible Markup Languageの略。構造化データを表現するためのマークアップ言語です。
- 特徴
- 可読性が高い
- 拡張性が高い
- 多くのプログラミング言語でサポートされている
- 例
XML
<person>
<name>John Doe</name>
<age>30</age>
<address>
<street>123 Main Street</street>
<city>New York</city>
<state>NY</state>
<zip>10001</zip>
</address>
</person>
2. CSV
Comma-Separated Valuesの略。データをカンマで区切って記述するテキスト形式です。
- 特徴
- シンプルで軽量
- 多くのソフトウェアで読み書きできる
- 例
コード スニペット
John Doe,30,123 Main Street,New York,NY,10001
3. プロトコルバッファ
Googleが開発したシリアライズフォーマット。
- 特徴
- 効率的なデータ転送
- 言語に依存しない
- 多くのプログラミング言語でサポートされている
- 例
message Person {
required string name = 1;
required int32 age = 2;
optional string address = 3;
}
Person person = {
name: "John Doe",
age: 30,
address: "123 Main Street, New York, NY, 10001"
};
4. S-expressions
Lispプログラミング言語で使用されるデータ構造。
- 特徴
- シンプルで軽量
- 多くのプログラミング言語で実装できる
- 例
(name "John Doe")
(age 30)
(address (street "123 Main Street") (city "New York") (state "NY") (zip "10001"))
5. その他
上記以外にも、独自フォーマットや特定のプログラミング言語に依存したフォーマットなど、さまざまなシリアライズ方法が存在します。
まとめ
YAMLやJSONが登場する以前は、さまざまな方法で構造化データをシリアライズしていました。それぞれの方法にはメリットとデメリットがあり、目的に合った方法を選択する必要がありました。
近年は、YAMLやJSONのような汎用性の高いフォーマットが主流となりつつありますが、特定の状況では従来のフォーマットが依然として使用されています。