【シリアライズ】と【デシリアライズ】の違いとは?例文付きで使い方や意味をわかりやすく解説
※本記事には広告・プロモーションが含まれています。
シリアライズとデシリアライズの分かりやすい違い
シリアライズとデシリアライズの違いは、「変換する向き」と「行う工程の順序」にあります。
シリアライズは、プログラムの中のデータを、保存したり送ったりできる一続きの形に変換することです。
デシリアライズは、その一続きの形を読み取って、プログラムが扱えるデータへ戻すことです。
シリアライズとは?
シリアライズとは、プログラムが持つデータ構造を、保存や通信で扱える一続きの形へ変換する処理のことです。
プログラムの中のデータをそのままでは外へ持ち出せないため、ファイルへの保存や通信で送る場面で用いられます。
決められた書式に沿って並べ直し、人が読める文字列や機械が扱いやすいバイト列の形にするという性質を持ちます。
鍵やパスワードなど外へ出すべきでない値を含めない配慮が必要です。
シリアライズの例文
- ( 1 ) 設定の内容をシリアライズして、ファイルに保存する。
- ( 2 ) 通信で送る前に、データをシリアライズする。
- ( 3 ) シリアライズの書式を決めておかないと、受け手が読めない。
- ( 4 ) パスワードは、シリアライズの対象から外している。
シリアライズの会話例
この設定、シリアライズして次に起動したときも残せますか。
できます。ファイルに書き出しましょう。今は動いている間しか残りません。
全部の項目を書き出してよいでしょうか。
接続用の鍵のような値は外しましょう。外へ持ち出せる形になる、ということですから。
デシリアライズとは?
デシリアライズとは、シリアライズされた一続きのデータを読み取り、プログラムが扱えるデータ構造へ復元する処理のことです。
ファイルから読み込んだ内容や、通信で受け取った本文を、元の形へ組み立て直す場面で用いられます。
決められた書式に沿って並んだ内容を読み取り、元のデータ構造へ組み立て直すという性質を持ちます。
外部から届いたデータを無条件に復元する作りは攻撃の入り口になり得るため、扱う型を限定するなどの備えが必要です。
デシリアライズの例文
- ( 1 ) 受け取った本文をデシリアライズして、中身を取り出す。
- ( 2 ) 保存しておいた設定を、起動時にデシリアライズして読み込む。
- ( 3 ) デシリアライズの前に、形式が正しいかを検証する。
- ( 4 ) 外部から届いたデータの無条件なデシリアライズは避ける。
デシリアライズの会話例
受け取ったデータをデシリアライズするところで、たまに落ちます。
その直前で、中身を確かめていますか。
特に何も。届いたものを、そのまま組み立てています。
それだと、項目が欠けていたり型が違うと倒れます。まず形式を検証しましょう。
シリアライズとデシリアライズの違いまとめ
シリアライズとデシリアライズの違いは、変換する向きと、行う工程の順序にあります。
シリアライズはプログラム内のデータを一続きの形に変換することであるのに対し、デシリアライズはその形を読み取って元のデータ構造へ戻すことです。
データを保存や送信のために持ち出す場合は「シリアライズ」、受け取ったデータを元の形に戻す場合は「デシリアライズ」と区別されます。
シリアライズとデシリアライズの読み方
- シリアライズ(ひらがな):しりあらいず
- シリアライズ(ローマ字):shiriaraizu
- デシリアライズ(ひらがな):でしりあらいず
- デシリアライズ(ローマ字):deshiriaraizu