« PHP で JSON 関連 | メイン | PHP + SQLite : ファイルから SQL実行 »

Javascript: Object <-> JSON

あとで読む

javascript で JSON 扱う場合、デコードするには eval() すればよいのだけど、エンコードは結構メンドーだ。デコードにしても、データだけを解釈するように限定し、構文エラー、危険コードなど検出できるとよいだろう。

というわけで、いくつか実装を挙げてみる。

  • JSON in JavaScript by Douglas Crockford : 一番下にコードへのリンクがある。エンコードは Object.prototype.toJSONString() を追加、デコードは String.prototype.parseJSON(filter) を追加。parseJSON() は引数にパースしたデータに適用する filter function を与える事ができる。SAXみたいな感じ。
  • Prototype JavaScript framework: Introduction to JSON : Prototype.js の実装。1.5.1 で↑をベースに実装された。エンコードは 各オブジェクト.toJSON()、デコードは String.evalJSON([sanitize])。evalJSON(true) とすると、実行コードが含まれたりする場合エラーにしてくれるらしい。
  • Extended json.js by Mark Gibson for jQuery: jQueryオブジェクト(短縮形 $) を拡張して、$.toJSON(value),$.parseJSON(json_str, [safe]) を追加する。ドキュメントなし。リンク先は jQuery Plugins のページなので、toJSON で検索するべし。Prototype.js 同様 safe=true で危ないデータはエラーにしてくれる。toXML()も同じ人が書いてる。(参照:Jollytoad - jQuery Plugins

JSON エンコード/デコードとは関係ないのだが、やっぱり、既存オブジェクトを書き換えちゃうのは気持ち悪いなぁ。という点では jQuery が好きだなー。

Trackbacks

Trackback URL:
http://groundwalker.com/mt/gwtb.cgi/222

« PHP で JSON 関連 | メイン | PHP + SQLite : ファイルから SQL実行 »

スポンサー

関連ブログ

あわせて読みたい

関連キーワード

Powered by
Movable Type 3.34

連絡先