【发布时间】:2020-12-31 00:43:48
【问题描述】:
我正在尝试在 postgres 服务器上创建一个可以处理 json 参数的存储函数。服务器版本为12。它用作android应用程序的后端服务器。
目前从DB取数据的流程如下:
- APP ---(http post request with json)---> Nodejs handlers server
- Nodejs 处理程序服务器(解析 App json 并验证数据)
- Nodejs 处理程序服务器 Postgres 服务器
- Nodejs 处理程序服务器(为 App 编写 json 响应)
- Nodejs 处理程序服务器 ---(带有 json 的 http 响应)---> APP
主要缺点是 Nodejs 处理程序和 Postgres 服务器之间的多个查询和进程。我决定通过处理程序准备一个复杂的 json 来优化它,其中包括所需的用户数据和操作,将其发送到 Postgres 服务器,该服务器必须解析它并使用表完成所有工作,然后组合一个包含所有需要结果的 json。但是我完全不知道如何在 Postgres 服务器上的存储函数中解析和组合 json。
例如,如果我有这个简单的 json №1:
{
"fields": ["name", "age", "rating"],
"values": ["alex", 24, 7.0],
"type": ["string", "integer", "real"]
}
而且我需要发回 json №2,如下所示:
{
"updateDate": 20200101
}
例如,我如何从第一个 json 中获取 24 个 int 值并在函数中编写第二个 json?
CREATE FUNCTION update_user (IN data json, OUT result JSON) AS $$
DECLARE
age int;
BEGIN
age := ???
...(sql query)...
result := ???
END $$
LANGUAGE plpgsql;
感谢您的帮助
【问题讨论】:
标签: json postgresql plpgsql