10

ここで非常に明白な何かが欠けていないことを願ってい
ます.postgres関数からJSON出力を取得したい(他の多くの人がすでにこれを必要としていたと思います).contrib関数の拡張機能をサーバーにインストールできれば幸いです.

SQL または plpgsql 関数から (または db-server-side python を使用して) JSON 出力を取得する方法はありますか? record[]具体的には、結果を JSON として 取得したいと考えています。

4

4 に答える 4

11

PostgreSQL 9.2以降、JSONのサポートが組み込まれており、最近のバージョンでは他の多くの機能が追加されています(例:PostgreSQL 0.4のJSON関数)。

特に、row_to_jsonはレコードをJSONオブジェクトに変換し、array_to_json配列をJSON配列に変換します。

たとえば、両方の関数を組み合わせて、SELECTクエリの結果をJSONに簡単に変換できます。

SELECT array_to_json(array_agg(row_to_json(t))) FROM 
    (SELECT col1, col2, col3 FROM example_table) t
于 2012-06-25T23:19:56.657 に答える
4

Use record_to_json(...) from 9.2, now available backported to 9.1.

于 2012-06-26T01:55:10.053 に答える
2

plpythonプラグインを使用すると、pythonjson ライブラリを使用してこれを実行できます。

あなたはこのようなことをすることができます:

CREATE OR REPLACE FUNCTION myschema.tojsonfunc()
AS $$    

   import json;
   jsonStr = json.dumps(myrecord)

$$ LANGUAGE plpythonu;
于 2012-06-25T23:41:56.083 に答える