2013年11月14日木曜日

postgresql から json

 php で postgresql からデータを取り出して JSON に加工して返すとか、めんどくさいなぁと思って調べてみました。社員に、どうやって実装してたん?て聞いたら、データ取り出して加工してたという事でした。うんうん、やっぱそうだよなー、面倒くせぇwwwwて思ってたんですが、ラッキーな事に、version 9.2 から row_to_json という関数がサポートされたようです。 まずは、データ準備
create table hoge (id integer primary key, name text);
insert into hoge (id,name) values (1, 'fuga');
insert into hoge (id,name) values (2, 'moge');
ほんで、取り出し
select array_to_json( array_agg( row_to_json(foo) ) )
  from (select id, name from hoge) foo;
結果
[{"id":1,"name":"fuga"},{"id":2,"name":"moge"}]
いやー、素晴らしいですね! 参考:Faster JSON Generation with PostgreSQL