我正在循环以仅使用某些元素来创建新的json矩阵,为此,我需要根据条件来遍历先前创建的json-array并按PUSH(添加元素)和POP(删除元素) 。
我收到类似的东西
[
{"id":1 , "data": "test_a"},
{"id":2 , "data": "test_t"},
{"id":3 , "data": "test_h"},
.....
]
而且我正在对循环执行这样的操作
DECLARE
_test json;
i json;
_new_jsn json;
BEGIN
_test := SELECT json_agg(json_build_object('id', 1, 'data', 'test'))
FOR i IN SELECT * FROM json_array_elements(_test) LOOP
RAISE NOTICE 'element %',i;
END LOOP;
从这里开始,我不知道如何在新参数中继续制作ADD和REMOVE元素。
我的过滤器基于IF-ELSE,所以如果有
FOR i IN SELECT * FROM json_array_elements(_test) LOOP
IF i->>id > 2 THEN
..... Add the element in _new_jsn
ELSE
.... Remove/Ignore the element
END IF;
END LOOP;
我想在循环后收到类似这样的内容
[
{"id":3 , "data": "test_h"},
{"id":4 , "data": "test_c"},
.....
]
我相信您正在寻找