JSでシリアライザブルデータとノンシリアライザブルデータの違いは何か

Reduxのドキュメントを読んでいたら、こういう文章を見つけました。

 

Do Not Put Non-Serializable Values in State or Actions

 

Non-Serializable Valuesってなんだろうと思いまして、

 

調べてたらこういう記事を見つけました。

 

この記事によると、

 

シリアライズとは、情報を失うことなくデータをピュアテキストに変換できることを意味するようです。

 

通常、JSでシリアライズというと、次のようなことができるという意味になるとのこと。

 

const data = { foo: 'bar', };
const data2 = JSON.parse(JSON.stringify(data));

 

上記のプログラムを実行した後、

 

dataとdata2には全く同じデータが入っていることになる。

 

つまり、データを文字列に変換しても、

 

情報を失わずにデシリアライズすることができるものであり、

 

toString()メソッドを定義することで、独自のシリアル化可能なオブジェクトを定義することがでるということでしょうね。

 

結論としては、オブジェクトがシリアル化されているかどうかわからない場合は、

 

正しく文字列にコンバートできるかを確認すればよさそうですね。

藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

JavaScript

コメントする

メールアドレスが公開されることはありません。