PostgreSQL9.2: JSON型


こんにちわ、北川です。

PostgreSQL 9.2 で追加された JSON型を触ってみましたので紹介したいと思います。

http://www.postgresql.org/docs/9.2/static/datatype-json.html

JSON型

ドキュメントを読むとJSON型は内部的には、RFC 4627 準拠するように
チェックされたテキスト型になります。

まずは、JSON 型 をカラムに持つテーブルを作成していきます。

次に、データを入れてみます。

特に、詰まることなく利用できました。配列も登録でき、RFC 4627 に準拠していれば問題ないようです。

また、RFC 4627 に違反していると、エラーになり insert することができませんでした。

JSON型のまま、絞り込み条件は指定できず、 like , order by などもエラーとなり失敗しました。
また、JSONのキーや要素での検索も出来ないようです。

一度、text型にキャストすることで、絞り込み条件として利用することは出来そうです。

関数

JSON型の追加に合わせて、array_to_json() row_to_json() の関数が追加されています。

http://www.postgresql.org/docs/9.2/static/functions-json.html

試しに、利用してみます。

array_to_json()は 値を配列形式のJSONとして取得でき、
row_to_json()は値を行形式のJSONとして取得できます。

まとめ

要素検索ができないなど、標準機能でのデータアクセスがもう少し便利になると嬉しい部分がありますが、
データが正しいことが保証されているので、取り出してからパースエラーとなることがなくなるなど、
利用する場面はありそうです。実際の利用では、その辺りを注意しながら利用してみるのも良さそうです。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です