【用語解説】シリアライズ・デシリアライズとは

シリアライズ(serialize)とは、プログラミングでオプジェクト化されたデータを、ファイルやストレージに保存したり、ネットワークで送受信したりできるような形に変換することを言います。

逆に、シリアライズされたデータをプログラミングで扱えるようにオブジェクトの型に復元することをデシリアライズ(deserialize)といいます。

だいたいのプログラミング言語にはあらかじめシリアライズの仕組みが用意されています。たとえばRuby では Marshal という独自のクラスが用意されているほか、JSON形式やYAML形式でのシリアライズも簡単に行うことができます。

データのやりとりをする媒体によって使いやすい型を採用しましょう。

Marshal

# シリアライズ 
a = Marshal.dump({a: 1})
=> "\x04\b{\x06:\x06ai\x06"

# デシリアライズ
Marshal.load(a)
=> {:a=>1}

JSON

# シリアライズ
a = JSON.generate({a: 1})
=> "{\"a\":1}"

# デシリアライズ
JSON.parse(a)
=> {"a"=>1}

YAML

# シリアライズ
a = {a: 1}.to_yaml
=> "---\n:a: 1\n"

# デシリアライズ
YAML.load(a)
=> {:a=>1}