JSON

Date
2006-05-06 (Sat)
Category
Web | javascript | php

しばらく開いてしまいました。来週、ITP の Spring Show にて、Makiko Saito 氏、Sonali Sridhar氏と共同で、taggit.in というプロジェクトを出展します。平日夜ですが、お時間のある方は是非。僕もいます。その中から、いろいろ書いておきたいことはあるのですが、詳しくは発表後

製作メモとして、今回は JSON の話。

今回のプロジェクトは、いろんなページから、taggit.in にアクセスして、データを引き出す、というのものなので、AJAX の XMLHttpRequest は domain 制限により使えません。という訳で、data は JSON にして受け渡しています。サーバ側では、Hawk 氏の JSONEncoder を使って、クライアント側では、本家にある詠み人知らずの JSON.js を活用させてもらっています。

そこで一つ問題があったのが、Single Quote (x27) の扱い。仕様上 Single quote は escape しなくていい感じですが、実際しないと困ります。例えば…

var container = JSON.parse('{"a":"hello","b":"My Uncle's house."}');

parse は String を受け取るから、Single Quote か Double Quote でくくる必要があるし、Double Quote は JSON で使われてるし…結局、少し JSONEncoder 改造しました。というか、スゴい簡単だった。69行目 前後に始まる “ $this->_transTable = array( ” に "\x27" => "\'" を一つ追加しただけ。array 全体を以下に。

$this->_transTable = array(
	"\x08" => '\b',
	"\x09" => '\t',
	"\x0A" => '\n',
	"\x0C" => '\f',
	"\x0D" => '\r',
	"\x22" => '\"',
	"\x27" => "\'",
	"\x2F" => '\/',
	"\x5C" => '\\\\'
);

何か僕の知らない深遠な理由があるのかな? Single Quote を Escape しないのには…

Comment:0

Comment Form

Remember Me?


Trackback:1

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/173
Listed below are links to weblogs that reference
JSON from The Croton
JSON: Single Quote の Escape from Hawk's Laboratory : 2006-05-08 (Mon) 10:37
Jsphonのエンコード処理について、なぜ ' (\x27:Single Quote)をエスケープしないのか?という疑問をトラックバックでいただきましたの...

Return to Page Top