開発メモ,主に補足by子連れ親父プログラマー

2011-07-29

JSON形式の過去に一体何があったのか?

それにしても分からないのはJSON形式だ。
今phpで配列からJSON形式のデータを作ろうってことになったら、普通にphp5.2以上を使っている人たちは、
普通に json_encode を使うんだろう。悩む必要はない。
それ以外のちょっと前の環境の人だって、 pear が使えればそれでやっちゃってるんだろう。
だから世の中の人達は本当に正しいJSON形式なんてものに興味も関心もないに違いない。
それが自動的に作ってくれるんだから。
で、pearもねぇ、phpはいまだに4.3という、絶望のどん底のような環境にいる私は仕方なく自分でJSON形式を作ろうとすることになるんだが、
一昔前までは、
{ とか [ とか "" とか '' とか結構いい加減でもJSONとして動いていたらしいフシがある。
jQuery のプラグインです、なんつって配布されてるものでも jQuery1.2 くらいの時代のものだと、 key を""で囲っていなかったりして、これを最新の jQuery で動かすとエラーになる。
つまり、その時代に結構いい加減に作られていたJSON形式の一体どこがいけないのか、自分で分かってなきゃ作れないってことなんだ。
ということでJSONとはこれだ! というのがこのページらしいんだが。。。
http://json.org/
さっぱりわからん(笑)。
おそらくしかしこれは、配列は [] で囲め、 [] の中にはなにがしかの要素が入る。
オブジェクトは {} で囲め、その中にはキーと値をコロンでつないだものが入る、複数入れるならカンマで句切れ。
っていうようなことなんだろう。
ということでこちらの
http://d.hatena.ne.jp/kovaio/20060610
2006年の古い記事の関数を書き換えてみました。
$json = "[".toJson($data)."]";

function toJson($data) {   
 $json = array();
 foreach ($data as $string => $value) {
  $key = (is_numeric($string) ? "" : "\"$string\":");

  if (is_array($value)) {
   $json[] = sprintf("%s {%s}", $key, toJson($value));
  } else {
   $json[] = sprintf("%s \"%s\"", $key, addslashes($value));
  }
 }
 return implode(", ", $json);
}
JSON形式に何があったのか知らないが、こんだけ絶望的に変わってるのに、なんで誰も憤慨していないのかが不思議だ。

このブログを検索

Powered by Blogger.

ラベル

php (17) jQuery (13) OSX (10) MySQL (8) Javascript (7) Postgres (7) port (7) apache (6) Java (3) Smarty (2) html (2) pear (2) FCKEditor (1) XAMPP (1) css (1) git (1) perl (1) ruby (1)

Facebookバナー