Ajax Webアプリケーションにおけるデータ形式として普及がはじまっているJSONデータ形式だが、同データを扱うおもしろいライブラリが発表されたので紹介したい。2008年1月に新しく発表されたJavaScriptライブラリ「JsonSQL」だ。Apache License Version 2.0のもとで公開されている。コード自体はコメントを抜いて90行ほどと短く、実現されている機能も限られたものだ。コンセプトプルーフ的なライブラリだがなかなか興味深い。

JsonSQLはJSONデータをSQL命令を使って操作できるようにするライブラリ。2008年1月現在公開されているバージョン0.1ではselect命令だけがサポートされており、"*"によるワイルドカード指定はフィールドに対してのみ適用できる。値をカンマで区切って指定する場合は","にスペースを加えずに詰めて記述する必要がある。whereの指定は"( )"で囲む必要ありだ。

 jsonsql.query("select \* from json.channel.items order by title desc",json); 
JsonSQLサンプルコード - すべてのデータを取得 - JsonSQLサイトより抜粋

jsonsql.query("select title,url from json.channel.items where (category=='javascript' \|\| category=='vista') order by title,category asc limit 3",json); 
JsonSQLサンプルコード - 特定のデータのみを取得 - JsonSQLサイトより抜粋

データのアクセスにSQLを使うようにするライブラリはJsonSQLに限らず多く存在する。たとえばJavaオブジェクトの操作にSQLを使えるようにするJoSQLといったライブラリも存在する。そもそもJSONはJavaScriptでそのまま読み込んで扱えるようになるところに利便性があるため、SQLでアクセスするようにすることにどの程度の価値があるか不透明だが、コンセプトプルーフ的な取り組みとしては興味深い。

データアクセスを抽象化し、バックエンドのデータ形式を考慮しなくてもいいような作りにしようとすることはプログラマなら誰しも考えるだろう。Webアプリケーションの場合、より汎用的なクエリ言語としてSPARQLがW3C勧告になったばかりだ。Webデベロッパはこうしたクエリ言語を調査の対象としてみてほしい。