1
postgresQLデータベースで定義されたjsonを返す関数があるとします。openresty upstream postgresそれ自身でjsonを返す関数を呼び出す
CREATE OR REPLACE FUNCTION test() RETURNS JSON AS $$
SELECT
'[
{"fName":"John","lName":"Doe"},
{"fName":"Jane","lName":"Doe"}
]'::JSON;
$$
LANGUAGE SQL STRICT IMMUTABLE;
SELECT test();
-------------------------------------
[
{"fName":"John","lName":"Doe"},
{"fName":"Jane","lName":"Doe"}
]
さらにあなたがfollwoing設定ファイルでPostgresのnginxのモジュールを含むnginxの(openresty) を持っている:上rds_jsonで
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
upstream database {
postgres_server localhost dbname=example user=postgres;
postgres_keepalive max=200 overflow=reject;
}
server {
listen 8080;
location /test/ {
postgres_pass database;
rds_json on;
postgres_query HEAD GET "SELECT test()";
postgres_rewrite HEAD GET no_rows 410;
}
}
}
。すべての引用符は出力にエスケープされ、それは次のようになります。私はrds_jsonをオフに設定している場合
curl http://localhost:8080/test/
[{"test":"[\n {\"fName\":\"John\",\"lName\":\"Doe\"},\n {\"fName\":\"Jane\",\"lName\":\"Doe\"}\n ]"}]
アン。私が正しくフォーマットされたJSONが、返される文字列の開始を受けて、いくつかの厄介な兆候で終了します。
@^C^@^@^@^@^@^@^B^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^A^@^@<80>r^@^D^@test^AL^@^@^@[
{"fName":"John","lName":"Doe"},
{"fName":"Jane","lName":"Doe"}
]^@
することは、結果オブジェクトに追加の兆候を取り除くためのいずれか、またはすべての二重引用符をエスケープしていない方法はあります最初のケースでは?
ありがとうございました