今回はJSONというデータフォーマットをJavaScriptで扱うときの関数の説明をします。
まずは簡単にJSONの概要を説明して、その後に利用方法を説明します。
JSONとは?
JavaScript Object Notationの略で、テキストベースのデータフォーマットです。
この文字列をJavaScriptのeval関数で評価することでObjectとして利用することができます。
理解を助けるために乱暴に言ってしまえば、JavaScriptのObject形式の文字列ということです。
なお、JSONという名前から、Objectだけのフォーマットのように見えますが、Arrayも使うことができます。
利用シーン
文字列をJavaScriptの構造体として記録できることから、AjaxやWebのAPIのフォーマットとして広く使われています。
また、HTML5のWebストレージはCookieよりも大きなサイズのデータを扱えることから、そのデータフォーマットとしてJSONを選択することもあります。
ObjectをJSONに変換
JavaScriptのObjectをJSONに変換するときには、window.JSONにあるJSON.stringify()を使います。
window.JSONの真偽で対応しているかを判別することができ、IE8から対応しています。
json_text = JSON.stringify(obj);
第2引数を使うことで、文字列に変換するときに挟むユーザ定義の関数を設定したり、文字列に変換するプロパティを制限することもできますが、説明が煩雑になるので割愛します。
JSONをObjectに変換
JavaScriptのObjectをJSONに変換するときには、window.JSONにあるJSON.parse()を使います。
こちらもwindow.JSONの真偽で対応しているかを判別することができ、IE8から対応しています。
obj = JSON.parse(json_text);
こちらもstringify同様、第2引数を設定できますが、説明が煩雑になるので割愛します。
最後に
Ajaxで送信したり、Webストレージに保存するときは、JSON.stringifyで文字列にします。
Ajaxで受け取ったり、Webストレージから読み出したときは、JSON.parseでObjectにします。
JSONはPHPなどのサーバサイド言語で扱えるなど、比較的汎用的で安全であるため、簡単なカンマ区切りのデータでの読み書きを頻繁に行うような場合であっても、検討の候補として考えられるでしょう。
ただし、JSONの書式は比較的厳密さを求めてくるので、手作業でJSONデータを作るのはおすすめできません。専用のメソッドや関数を使うようにしましょう。