पोस्टग्रेज दस्तावेज़ीकरण के अनुसार :
IMHO आप एक JSON स्वरूपित स्ट्रिंग प्रदान कर रहे हैं, तो आपको पहली विधि का उपयोग करना चाहिए।
to_json('Fred said "Hi."'::text) --> "Fred said \"Hi.\""
यदि आप to_json(text) का उपयोग करके तत्वों की एक सरणी प्राप्त करने का प्रयास करते हैं तो आपको अगली त्रुटि मिलेगी:
select *
from jsonb_array_elements_text(to_jsonb('[{"field":15,"operator":0,"value":"1"},{"field":15,"operator":0,"value":"2"},55]'::text));
लेकिन अगर आपने पहले इसे 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 |
+--------------------------------------------+