Theo tài liệu Postgres :
IMHO bạn đang cung cấp một chuỗi có định dạng JSON, thì bạn nên sử dụng phương pháp đầu tiên.
to_json('Fred said "Hi."'::text) --> "Fred said \"Hi.\""
Nếu bạn cố gắng lấy một mảng phần tử bằng to_json (text), bạn sẽ gặp lỗi tiếp theo:
select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::text));
Nhưng nếu trước đó bạn truyền nó sang json:
select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::json));
+--------------------------------------------+
| value |
+--------------------------------------------+
| {"field": 15, "value": "1", "operator": 0} |
+--------------------------------------------+
| {"field": 15, "value": "2", "operator": 0} |
+--------------------------------------------+
| 55 |
+--------------------------------------------+