シリアライズとは
直列化を意味し、オブジェクトが持つデータをコンピュータが読み書きできるようにバイナリデータへ変換すること。
これによってデータをファイルとして保存したり、ネットワークで送受信できるようになる。
シリアライズ言語はシリアライズしたデータを表すためにフォーマット
シリアライズ言語
JSON
- 「JavaScript Object Notation」の略で、「JavaScriptのオブジェクトのオブジェクトの書き方を元にしたデータ定義方法」のこと
- 拡張子は「.json」
- JavaScriptなどのクライアント言語とRailsなどのサーバサイド言語間のデータのやり取りで使用される。
基本の書き方
- データのキーと値を{ }に中にコロン(:)で区切って記載。
- 二つ以上のデータがある場合には、カンマで区切って記載
- 文字列、数値、null、bool値、オブジェクト、配列のデータ型に対応。文字列のみダブルクォーテーションで囲む。
例)
{
[
"id": 1,
"name" : "taro",
"address" : "tokyo"
],
[
"id": 2,
"name": "Hanako",
"address": "kyoto"
]
}
XML
- 「Extensible Markup Language」の略で、「拡張可能なマークアップ言語」と訳される。
- 拡張子は「.xml」
- HTMLの記法を元にしたデータ定義方法で、データ定義言語と呼ばれる
基本の書き方
- HTMLと同じように<要素名>内容要素名>で分ける
- 要素名は自由に決めることができる
例)
<?xml version="1.0" encoding="utf-8"?>
<data>
<item>
<id>1</id>
<name>taro</name>
<address>tokyo</address>
</item>
<item>
<id>2</id>
<name>hanako</name>
</item>
</data>
CSV
- 「 Comma Separate Values」の略で、「カンマで値を分ける」という意味
- 拡張子は「.csv」
- Excelで表示できる
- データベースへのインポートやエクスポート、基幹システムへのアップロードやダウンロードで利用される
基本の書き方
- カンマ(,)でデータを区切る
- 改行で、データのレコードの区切り(データのかたまり)を表す
- 先頭に記載される区切られたデータの項目名やタイトルをかく(データの利用者が内容を認識していれば必要なし)
例)
id,name,address
1,taro,tokyo
2,hanako,kyoto
YAML
- 「YAML Ain't Markup Language」の略。
- 拡張子は「.yml」
- 設定ファイルの記述に使用されることが多い。docker-compose.yml、config.ymlなど。
基本の書き方
- データのキーと値をコロン(:)で区切って記載。
- インデントによってデータの階層の構造(データのかたまり)を表現している
- 文字列をシングルフォーテーション('')やダブルクォーテーション("")で囲む必要がない。
- 行頭に-を入れることで配列として扱うことができる。この時-と値の間には半角スペースを開ける。
例)
- id: 1
name: taro
address: tokyo
- id: 2
name: taro
address: kyoto